mirror of
https://gitee.com/many2many/java-web.git
synced 2025-01-11 14:40:55 +08:00
c7 changed
This commit is contained in:
parent
bb6867d6d6
commit
f99948603b
@ -119,7 +119,7 @@ nginx中部署 [paopao-web-ui.zip](../examples/chapter07/paopao-web-ui.zip)
|
|||||||
|
|
||||||
### 7.2 用户注册功能开发
|
### 7.2 用户注册功能开发
|
||||||
|
|
||||||
基本上按照层次结构创建系统的包结构, 在`com.lk.paopao`包下创建子包`controllers`、`services`、`entities`、`repositories`。
|
基本上按照层次结构创建系统的包结构, 在`com.lk.paopao`包下创建子包`controller`、`service`、`entity`、`repository`、`config`。
|
||||||
|
|
||||||
|
|
||||||
#### 7.2.1 API设计
|
#### 7.2.1 API设计
|
||||||
@ -158,19 +158,89 @@ spring:
|
|||||||
```
|
```
|
||||||
yml配置文件的格式需要注意:缩进和空格是敏感的,需要严格遵循格式。
|
yml配置文件的格式需要注意:缩进和空格是敏感的,需要严格遵循格式。
|
||||||
|
|
||||||
#### 7.2.3 实体类和Repository接口
|
#### 7.2.3 实体类User和UserRepository接口
|
||||||
|
|
||||||
设计和实现实体类User
|
创建实体类User
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
对应的数据库接口: UserRepository
|
创建User对应的数据库接口: UserRepository
|
||||||
|
|
||||||
|
|
||||||
|
#### 7.2.3 创建服务类AuthService
|
||||||
|
|
||||||
#### 7.2.3 Controller和service
|
|
||||||
|
|
||||||
#### 7.2.4 解决跨域问题
|
创建service类,处理用户注册和登录逻辑: AuthService
|
||||||
|
|
||||||
|
#### 7.2.4 创建AuthController类
|
||||||
|
|
||||||
|
创建controller类,处理用户注册和登录请求: AuthController
|
||||||
|
|
||||||
|
#### 7.2.5 解决跨域问题
|
||||||
|
|
||||||
|
跨域问题是指在使用AJAX进行跨域请求时,浏览器阻止访问不同源的Web资源的问题。跨域问题的本质是浏览器的一种安全机制,称为同源策略(Same-Origin Policy)。同源策略限制了来自不同源的文档或脚本间的交互,以防止恶意网站窃取数据或进行其他恶意操作。
|
||||||
|
|
||||||
|
跨域问题的原因
|
||||||
|
|
||||||
|
跨域问题主要由以下几种情况引起:
|
||||||
|
|
||||||
|
协议不同:例如,http和https。
|
||||||
|
域名不同:例如,example.com和test.com。
|
||||||
|
端口不同:例如,80和8080。
|
||||||
|
|
||||||
|
目前最常用的解决方案:
|
||||||
|
|
||||||
|
> CORS(Cross-Origin Resource Sharing):服务器端设置CORS头部信息,允许特定的域名或所有域名进行跨域请求。
|
||||||
|
|
||||||
|
在spring boot中可使用自己创建CorsFilter的bean实例的方式解决。
|
||||||
|
|
||||||
|
在项目`config`包中创建类`CorsConfig`,添加如下代码:
|
||||||
|
|
||||||
|
```java
|
||||||
|
package com.lk.paopao.config;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.cors.CorsConfiguration;
|
||||||
|
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
||||||
|
import org.springframework.web.filter.CorsFilter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置类,用于设置跨域请求
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class CorsConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建并配置CorsFilter bean
|
||||||
|
*
|
||||||
|
* @return CorsFilter bean实例,用于处理跨域请求
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public CorsFilter corsFilter() {
|
||||||
|
// 创建URL基于的Cors配置源
|
||||||
|
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||||
|
// 创建Cors配置实例
|
||||||
|
CorsConfiguration config = new CorsConfiguration();
|
||||||
|
|
||||||
|
// 配置允许的源
|
||||||
|
config.setAllowedOrigins(List.of("http://localhost"));
|
||||||
|
// 配置允许的方法
|
||||||
|
config.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE"));
|
||||||
|
// 配置允许的头部
|
||||||
|
config.setAllowedHeaders(List.of("*"));
|
||||||
|
// 允许凭据
|
||||||
|
config.setAllowCredentials(true);
|
||||||
|
|
||||||
|
// 在配置源中注册全局跨域配置
|
||||||
|
source.registerCorsConfiguration("/**", config);
|
||||||
|
// 返回CorsFilter实例
|
||||||
|
return new CorsFilter(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
### 7.3 发布文章功能开发
|
### 7.3 发布文章功能开发
|
||||||
|
|
||||||
|
23
examples/chapter07/paopao/src/main/resources/application.yml
Normal file
23
examples/chapter07/paopao/src/main/resources/application.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
spring:
|
||||||
|
jackson:
|
||||||
|
property-naming-strategy: SNAKE_CASE # 驼峰转下划线
|
||||||
|
datasource:
|
||||||
|
url: jdbc:h2:file:./db.h2 # 使用文件存储
|
||||||
|
driverClassName: org.h2.Driver
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
h2:
|
||||||
|
console: # 开启console访问 默认false
|
||||||
|
enabled: true
|
||||||
|
settings:
|
||||||
|
trace: true # 开启h2 console 跟踪 方便调试 默认 false
|
||||||
|
web-allow-others: true # 允许console 远程访问 默认false
|
||||||
|
path: /h2 # h2 访问路径上下文
|
||||||
|
jpa:
|
||||||
|
show-sql: true
|
||||||
|
open-in-view: false
|
||||||
|
defer-datasource-initialization: true
|
||||||
|
database-platform: org.hibernate.dialect.H2Dialect
|
||||||
|
hibernate:
|
||||||
|
ddl-auto: update
|
Loading…
Reference in New Issue
Block a user