html php網(wǎng)站開發(fā)網(wǎng)址如何被快速收錄
1.| constant | 存放相關(guān)常量類 |
| context | 存放上下文類 |
| enumeration | 項目的枚舉類存儲 |
| exception | 存放自定義異常類 |
| json | 處理json轉(zhuǎn)換的類 |
| properties | 存放SpringBoot相關(guān)的配置屬性類 |
| result | 返回結(jié)果類的封裝 |
| utils | 常用工具類 |
2.| Entity | 實體,通常和數(shù)據(jù)庫中的表對應 |
| DTO | 數(shù)據(jù)傳輸對象,通常用于程序中各層之間傳遞數(shù)據(jù) |
| VO | 視圖對象,為前端展示數(shù)據(jù)提供的對象 |
| POJO | 普通Java對象,只有屬性和對應的getter和setter |
3.| config | 存放配置類 |
| controller | 存放controller類 |
| interceptor | 存放攔截器類 |
| mapper | 存放mapper接口 |
| service | 存放service類 |
| SkyApplication | 啟動類 |
3.先編譯一下,然后正常運行
?前后端聯(lián)調(diào):
nginx反向代理,就是將前端發(fā)送的動態(tài)請求由nginx轉(zhuǎn)發(fā)到后端服務器
好處:?
前端發(fā)送的請求,是如何請求到后端服務的?
在使用Nginx作為反向代理的Java項目中,前端發(fā)送的請求會被Nginx接收并處理,然后轉(zhuǎn)發(fā)給后端服務。以下是一些基本步驟:
客戶端(前端)發(fā)送請求到Nginx服務器。
Nginx服務器接收請求,并根據(jù)配置的規(guī)則進行處理。
Nginx根據(jù)配置的規(guī)則將請求轉(zhuǎn)發(fā)給后端服務。
后端服務接收到請求并處理,然后返回響應。
Nginx接收后端服務的響應,并將其返回給客戶端。
在這個過程中,Nginx扮演了反向代理的角色,接收客戶端的請求并轉(zhuǎn)發(fā)給后端服務,同時也將后端服務的響應返回給客戶端。通過Nginx,可以實現(xiàn)對請求的負載均衡(把大量的請求按照我們指定的方式均衡的分配給集中的每臺服務器)、緩存、安全過濾等處理,提高系統(tǒng)的性能和安全性。?
配置:nginx.conf
server{ ?? ?
? ? ? ? ? ? ?listen 80; ?? ?
? ? ? ? ? ? ?server_name localhost; ?? ? ?? ?
? ? ? ? ? ? ?location /api/ { ? ? ? ? ? ? ?? ??? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?proxy_pass ? http://localhost:8080/admin/; ?#反向代理 ?? ?} }
nginx 負載均衡的配置方式:?nginx.conf
upstream webservers{ ?? ?
? ? ? ? ? ? ? ? server 192.168.100.128:8080; ?? ?
? ? ? ? ? ? ? ? server 192.168.100.129:8080;
}
server{ ?? ?listen 80; ?? ?
? ? ? ? ? ? ? ? server_name localhost; ?? ? ?? ?
? ? ? ? ? ? ? ? location /api/ { ? ? ? ? ? ? ?? ???
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? proxy_pass ? http://webservers/admin/; ?#負載均衡 ?? ?} }
完善登錄功能
問題:員工表中的密碼是明文存儲,安全性太低。?
1.將密碼加密后存儲,提高安全性
2.使用MD5加密方式對明文密碼加密
1.修改數(shù)據(jù)庫中明文密碼,改為MD5加密后的密文
2.修改Java代碼,前端提交的密碼進行MD5加密后再跟數(shù)據(jù)庫中密碼比對
在EmployeeServiceImpl中
//進行md5加密,然后再進行比對
password = DigestUtils.md5DigestAsHex(password.getBytes());
if (!password.equals(employee.getPassword())) { ? ?
//密碼錯誤 ?
throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR); }
前后端?分離開發(fā)流程:
導入接口文檔?
json導入YApi
Yapi 是設(shè)計階段使用的工具,管理和維護接口
Swagger 在開發(fā)階段使用的框架,幫助后端開發(fā)人員做后端的接口測試
Swagger
使用Swagger你只需要按照它的規(guī)范去定義接口及接口相關(guān)的信息,就可以做到生成接口文檔,以及在線接口調(diào)試頁面。
Knife4j 是為Java MVC框架集成Swagger生成Api文檔的增強解決方案。
1.導入maven坐標
2.在配置類中加入knnife4j相關(guān)配置
3.設(shè)置靜態(tài)資源映射,否則接口文檔頁面無法訪問
<dependency> ? ? ? ? ? ?
<groupId>com.github.xiaoymin</groupId> ? ? ? ? ? ?
<artifactId>knife4j-spring-boot-starter</artifactId> ? ? ? ? ? ?
<version>3.0.2</version>
</dependency>
?WebMvcConfiguration中:
@Bean
public Docket docket(){ ? ?
? ? ApiInfo apiInfo = new ApiInfoBuilder() ? ? ? ? ? ?
? ? ? ? ? ? ? ? .title(“蒼穹外賣項目接口文檔”) ? ? ? ? ? ?
? ? ? ? ? ? ? ? .version(“2.0”) ? ? ? ? ? ?
? ? ? ? ? ? ? ? .description(“蒼穹外賣項目接口文檔") ? ? ? ? ? ?
? ? ? ? ? ? ? ? .build(); ? ?
Docket docket = new Docket(DocumentationType.SWAGGER_2) ? ? ? ? ? ?
? ? ? ? ? ?.apiInfo(apiInfo) ? ? ? ? ? ?
? ? ? ? ? ?.select() ? ? ? ? ? ?
? ? ? ? ? ?//指定生成接口需要掃描的包? ? ? .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))? ? ? ? ? ? ? ? ? ? ? ? ? .paths(PathSelectors.any()) ? ? ? ? ? ?
? ? ? ? .build();
return? docket;
}
/* *?
*設(shè)置靜態(tài)資源映射 ,主要是訪問接口文檔
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
? ?log.info(“開始設(shè)置靜態(tài)資源映射..."); ??
? ?registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); ? ?
? ?registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
? ?}
常用注解:
通過注解可以控制生成的接口文檔,使接口文檔擁有更好的可讀性,常用注解如下:
@Api(tags ="員工相關(guān)接口")
@ApiOperation(value = "員工登錄")? ? 方法上
@ApiOperation("員工退出")
DTO:專注于做數(shù)據(jù)傳輸
VO