org.springframework.boot
spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-log4j2
org.springframework.boot
spring-boot-starter-aop
org.springframework.boot
spring-boot-starter-mail
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-data-redis
com.alibaba
fastjson
1.2.76
mysql
mysql-connector-java
org.springframework.boot
spring-boot-configuration-processor
true
org.apache.commons
commons-lang3
commons-collections
commons-collections
3.2.2
com.baomidou
mybatis-plus-boot-starter
3.4.3
org.projectlombok
lombok
joda-time
joda-time
2.10.10
org.springframework.boot
spring-boot-maven-plugin
1.2 application.properties配置
#server
server.port= 8888
spring.application.name=mszlu_blog
datasource
spring.datasource.url=jdbc:mysql://localhost:3306/blogxpp?useUnicode=true&characterEncoding=UTF-8&serverTimeZone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mybatis-plus
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#定义前缀表名,因为数据库中的表带ms_。这样实体类的表不用加前缀就可以匹配
mybatis-plus.global-config.db-config.table-prefix=ms_
1.3 配置分页插件
不知道的可以查看MyBatis-Plus官网关于分页插件的介绍
@Configuration
//扫包,将此包下的接口生成代理实现类,并且注册到spring容器中
@MapperScan(“com.xpp.blog.dao.mapper”)
public class MybatisPlusConfig {
//集成分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
1.4 配置解决跨域
解决跨域问题可以参考:SpringBoot解决跨域的5种方式
前后端端口不一样,需要解决跨域问题。
这里解决的方法是重写WebMvcConfigurer:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private LoginInterceptor loginInterceptor;
//跨域配置,前端和后端端口不一样
@Override
public void addCorsMappings(CorsRegistry registry) {
//8080前端使用的端口号
registry.addMapping(“/**”).allowedOrigins(“http://localhost:8080”);
}
}
1.5 添加启动类
@SpringBootApplication
public class BlogApp {
public static void main(String[] args) {
SpringApplication.run(BlogApp.class,args);
}
}
不管是controller层还是service,dao层,都有可能报异常,如果是预料中的异常,可以直接捕获处理,如果是意料之外的异常,需要统一进行处理,进行记录,并给用户提示相对比较友好的信息。
-
@ControllerAdvice:对加了@Controller的方法进行拦截处理,AOP的实现 -
@ExceptionHandler:统一处理某一类异常,从而减少代码重复率和复杂度,比如要获取自定义异常可以@ExceptionHandler(BusinessException.class)
//作用:对加了@Controller的方法进行拦截处理,AOP的实现
@ControllerAdvice
public class AllExceptionHandler {
//进行一次处理,处理Exception.class的异常
@ExceptionHandler(Exception.class)
//返回json数据,不加的话直接返回页面
@ResponseBody
public Result doException(Exception e){
e.printStackTrace();
return Result.fail(-999,“系统异常”);
}
}

3.1 接口说明
接口url:/login
请求方式:POST
请求参数:
| 参数名称 | 参数类型 | 说明 |
| — | — | — |
| account | string | 账号 |
| password | string | 密码 |
返回数据:
{
“success”: true,
“code”: 200,
“msg”: “success”,
“data”: “token”
}
3.2 JWT
可以参考:JWT整合Springboot
登录使用JWT技术:
-
jwt 可以生成 一个加密的
token,做为用户登录的令牌,当用户登录成功之后,发放给客户端。 -
请求需要登录的资源或者接口的时候,将
token携带,后端验证token是否合法。
jwt 有三部分组成:A.B.C
-
A:
Header,{“type”:“JWT”,“alg”:“HS256”} 固定 -
B:
playload,存放信息,比如,用户id,过期时间等等,可以被解密,不能存放敏感信息 -
C:
签证,A和B加上秘钥加密而成,只要秘钥不丢失,可以认为是安全的。
jwt 验证,主要就是验证C部分是否合法。
依赖包:
io.jsonwebtok


4万+

被折叠的 条评论
为什么被折叠?



