简介SpringBoot支持多环境开发,通过配置文件来控制环境,默认是dev环境,可以通过命令行参数来指定环境,如:java -jar xxx.jar --spring.profiles.active=test
分割不同环境的配置使用
1---
指定配置属于哪个环境通过键值来指定,如:spring.config.activate.on-profile=<环境配置名称>
如何指定那个环境的配置生效?123spring: profiles: active: <环境配置名称>a
例子1234567891011121314151617181920212223spring: profiles: active: dev #指定默认环境---#开发环境spring: congfig: activate: on-profile: dev---#测试环境spring: congfig: activate: on-profile: test---#生成环境 ...
Spring
未读创建一个新类添加@RestControllerAdvice注解,该注解用于定义全局异常处理类
@RestControllerAdvice //@RestControllerAdvice = @ControllerAdvice + @ResponseBody
使用@ExceptionHandler注解定义异常处理方法123456789101112131415@RestControllerAdvice //@RestControllerAdvice = @ControllerAdvice + @ResponseBodypublic class GlobalExceptionHandler { /** * 这个注解是指定处理那些异常 * @param ex * @return */ @ExceptionHandler(Exception.class) public Result ex(Exception ex){ ex.printStackTrace(); // ...
Spring
未读简介用于验证接口传入参数的框架,就是判断某个参数是否为空,是否为空字符串,是否为空集合等。
常用于判断手机号 ,身份证号码,用户名,密码等。就是一个类似掩码的东西。
Maven添加依赖1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>
使用
在Controller类上添加@Validated注解在参数前面添加@Pattern注解,然后参数regexp属性指定正则表达式即可
123public Result register(@Pattern(regexp = "^\\S{5,16}$") String username,@Pattern(regexp = "^\\S{5,16}$") String password) ...
创建launch.json文件在.vscode文件下创建launch.json文件
在configurations里面进行配置,每一个{}对象对应一个调试任务
右下角可以快捷添加配置模板
把鼠标悬停在key上,会出现提示
完整配置Hexo的调试文件1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Hexo Server", "runtimeExecutable": ...
AOP概述AOP:Aspect Oriented Programming,即面向切面编程,其实就是面向特性方法编程。
AOP应用场景
动态代理的主要作用是在运行时创建一个符合特定接口的对象,这个对象可以拦截接口方法的调用,并在调用实际方法前后添加额外的处理逻辑。
Spring AOP导入依赖:在pom.xml文件中导入依赖1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>
编写AOP程序:针对于特定方法根据业务需要进行编程使用@Component让springboot管理,使用@Aspect注解成为切面类
12345678910111213141516@Component@Aspectpublic class TimeAspect { /** * ProceedingJoinPoin ...
什么是事务事务是一组操作的集合,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败。
操作顺序
开启事务(一组操作开始前,开启事务):start transaction / begin
提交事务(这组操作全部成功后,提交事务):commit
回滚事务(中间任何一个操作出现异常,回滚事务):rollback
Spring事务管理
注解:@Transactional
位置:业务(service)层的方法上、类上、接口上
作用:将当前方法交给spring进行事务管理,方法执行前,开启事务,方法执行后,提交事务,出现异常,回滚事务
1234logging: # 开启事务管理日志 level: org.springframework.jdbc.support.jdbcTransactionManager: debug
rollbackFor默认情况下,只有出现RuntimeException才回滚异常。rollbackFor属性用于控制出现何种异常类型,回滚事务。
例子:
1234567@Transactional(rollbackFor = Excepti ...
会话技术会话技术:在服务器端创建一个与客户端浏览器相关的数据,用来记录客户端浏览器的访问信息。
会话:用户打开浏览器,访问Wb服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。
会话跟踪方案:
客户端会话跟踪技术:Cookie
服务器端会话跟踪技术:Session
令牌技术
Cookie和Session都是传统的会话技术
Cookie优点:
HTTP协议中支持的技术缺点:
存储空间有限,通常情况下不能存储二进制数据
不能跨域访问
不安全,用户可以自己禁用Cookie
Session优点:
部署在服务器,安全缺点;
服务器集群环境下无法直接使用Session
Cookie的缺点
JWT令牌技术JWT令牌技术:JSON Web Token,是一种用于在网络应用环境间传递声明的开放标准(RFC 7519)。
全称称:JSON Web Token(https://jwt.io/)
定义了一整简洁的、自包含的格式,用于在通 ...
简介
是一款优秀的持久层框架,用于简化JDBC,原名iBatis
源码托管在Github,Mybatis
一般都是在Spring Boot中直接使用
SpringBoot数据库连接配置
1234spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/mybatisspring.datasource.username=rootspring.datasource.password=1234
• 使用@Mapper注解自动配置接口,接口方法再使用@Select('select * from user')注解,让IOC自动创建实现类的时候自动实现方法• 数据库连接池
是一个容器,负责分配、管理数据库连接(Connection)
允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗留
在pom文件中直接引入连接池的依赖,就切 ...