
SpringBoot笔记
文章平均质量分 58
SpringBoot学习笔记
Edric2021
这个作者很懒,什么都没留下…
展开
-
第二十七章 SpringBoot开启跨域配置
跨域:浏览器同源策略 1995年,同源政策由 Netscape 公司引⼊浏览器。⽬前,所有浏览器都实⾏这个政策。 最初,它的含义是指,A⽹⻚设置的 Cookie,B⽹⻚不能打开,除⾮这两个⽹⻚"同 源"。所谓"同源"指的是"三个相同"解决⽅法...原创 2022-01-29 23:05:02 · 210 阅读 · 0 评论 -
第二十六章 登录检验解决⽅案 JWT
单机tomcat应⽤登录检验sesssion保存在浏览器和应⽤服务器会话之间⽤户登录成功,服务端会保存⼀个session,当然客户端有⼀个sessionId客户端会把sessionId保存在cookie中,每次请求都会携带这个sessionId分布式应⽤中session共享真实的应⽤不可能单节点部署,所以就有个多节点登录session共享的问题需要解决tomcat⽀持session共享,但是有⼴播⻛暴;⽤户量⼤的时候,占⽤资源就严重,不推荐使⽤redis存储token服务端使⽤.原创 2022-01-27 22:57:21 · 1552 阅读 · 0 评论 -
第二十五章 SSM整合打通Mysql数据库控制事务
1.Spring 常⻅的事务管理事务:多个操作,要么同时成功,要么失败后⼀起回滚具备ACID四种特性Atomic(原⼦性)Consistency(⼀致性)Isolation(隔离性)Durability(持久性)常⻅的Spring事务管理⽅式编程式事务管理代码中调⽤beginTransaction()、commit()、rollback()等事务管理相关的⽅法,通过TransactionTempalte⼿动管理事务(⽤的少)声明式事务管理通过AOP实现,可配置⽂原创 2022-01-26 22:45:51 · 967 阅读 · 0 评论 -
第二十四章 基于Spring注解配置AOP⾯向切⾯编程
声明切⾯类 @Aspect(切⾯): 通常是⼀个类,⾥⾯可以定义切⼊点和通知配置切⼊点和通知开启SpringAOP注解配置配置环绕通知:打印⽅法请求耗时时间环绕通知获取⽬标⽅法和参数原创 2022-01-26 18:32:24 · 173 阅读 · 0 评论 -
第二十三章 基于Spring的AOP快速实现通⽤⽇志打印
需求分析:针对Videoservice接⼝实现⽇志打印三个核⼼包spring-aop:AOP核⼼功能,例如代理⼯⼚aspectjweaver:简单理解,⽀持切⼊点表达式aspectjrt:简单理解,⽀持aop相关注解定义service接⼝和实现类定义横切关注点引⼊相关包添加schema配置bean和aop...原创 2022-01-26 17:52:36 · 84 阅读 · 0 评论 -
第二十二章 Spring AOP⾥⾯的代理知识
1.静态代理和动态代理什么是代理为某⼀个对象创建⼀个代理对象,程序不直接⽤原本的对象,⽽是由创建的代理对象来控制对原对象,通过代理类这中间⼀层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间A ->B-> C什么是静态代理由程序创建或特定⼯具⾃动⽣成源代码,在程序运⾏前,代理类的.class⽂件就已经存在什么是动态代理在程序运⾏时,运⽤反射机制动态创建⽽成,⽆需⼿动编写代码JDK动态代理 &nbs原创 2022-01-25 18:59:37 · 87 阅读 · 0 评论 -
第二十一章 Spring5.X ⾯向切⾯编程 AOP
1.什么是AOP⾯向切⾯编程什么是AOPAspect Oriented Program ⾯向切⾯编程在不改变原有逻辑上增加额外的功能,⽐如解决系统层⾯的问题,或者增加新的功能场景权限控制缓存⽇志处理事务控制AOP思想把功能分两个部分,分离系统中的各种关注点核⼼关注点:业务的主要功能横切关注点:⾮核⼼、额外增加的功能好处减少代码侵⼊,解耦可以统⼀处理横切逻辑⽅便添加和删除横切逻辑2.AOP⾯向切⾯编程核⼼概念横切、通知、连接点、切⼊点、切⾯横切关注点对哪些⽅法进⾏拦原创 2022-01-25 18:34:02 · 220 阅读 · 0 评论 -
第二十章 Spring5.X bean 的⽣命周期和⼆次处理
1.Spring⾥⾯bean的⽣命周期⾥⾯的init和destroy⽅法2. bean的⼆次加⼯-Spring5.x后置处理器 BeanPostProcessor什么是BeanPostProcessor是Spring IOC容器给我们提供的⼀个扩展接⼝在调⽤初始化⽅法前后对 Bean 进⾏额外加⼯,ApplicationContext 会⾃动扫描实现了BeanPostProcessor的 bean,并注册这些 bean 为后置处理器是Bean的统⼀前置后置处理⽽不是基于某⼀个bean执⾏顺原创 2022-01-24 19:12:57 · 124 阅读 · 0 评论 -
第十九章 Spring5.X bean 的作⽤域和注⼊
1.Spring5.x的bean的scope作⽤域scope属性singleton:单例, 默认值,调⽤getBean⽅法返回是同⼀个对象,实例会被缓存起来,效率⽐较⾼ 当⼀个bean被标识为singleton时候,spring的IOC容器中只会存在⼀个该beanprototype: 多例,调⽤getBean⽅法创建不同的对象,会频繁的创建和销毁对象造成很⼤的开销其他少⽤ (作⽤域 只在 WebApplicationContext) &n原创 2022-01-24 18:57:31 · 94 阅读 · 0 评论 -
第十八章 Spring Framework5.X快速⼊⻔
1.快速认知Spring Framework5.X什么是Spring:轻量级的 DI / IoC 和 AOP 容器的开源框架https://spring.io/projects/spring-framework优点管理创建和组装对象之间的依赖关系 使⽤前:⼿⼯创建使⽤后:Spring创建,⾃动注⼊⾯向切⾯编程(AOP)可以解耦核⼼业务和边缘业务的关系场景:⽤户调⽤下单购买视频接⼝,需要判断登录,拦截器是AOP思想的⼀种实现使⽤前:代码写逻辑,每次下单都调⽤⽅法判断,多个⽅法需要判断登录则都原创 2022-01-24 18:36:02 · 143 阅读 · 0 评论 -
第十七章 MyBatis3.X整合Mysql数据库事务
1.MyBatis3.x 的事务管理形式使⽤JDBC的事务管理使⽤ java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())使⽤MANAGED的事务管理MyBatis⾃身不会去实现事务管理,⽽让程序的容器如(Spring, JBOSS)来实现对事务的管理事务⼯⼚TransactionFactory 的两个实现类JdbcTransactionFactory->JdbcTransactionManagedTran原创 2022-01-24 18:12:40 · 262 阅读 · 0 评论 -
第十六章 MyBatis3.X玩转多级缓存和懒加载
1.Mybatis3.X ⼀级缓存什么是缓存程序经常要调⽤的对象存在内存中,⽅便其使⽤时可以快速调⽤,不必去数据库或者其他持久化设备中查询,主要就是提⾼性能Mybatis⼀级缓存⼀级缓存的作⽤域是SQLSession,同⼀个SqlSession中执⾏相同的SQL查询(相同的SQL和参数),第⼀次会去查询数据库并写在缓存中,第⼆次会直接从缓存中取基于PerpetualCache 的 HashMap本地缓存默认开启⼀级缓存失效策略:当执⾏SQL时候两次查询中间发⽣了增删改的操作,即insert、原创 2022-01-24 17:54:36 · 346 阅读 · 0 评论 -
第十五章 MyBatis3.X复杂Sql查询
1.MyBatis3.X的resultMapMybatis的SQL语句返回结果有两种resultType 查询出的字段在相应的pojo中必须有和它相同的字段对应,或者基本数据类型 适合简单查询resultMap 需要⾃定义字段,或者多表查询,⼀对多等关系,⽐resultType更强⼤&原创 2022-01-24 16:34:13 · 105 阅读 · 0 评论 -
第十四章 MyBatis3.X玩转常⻅配置
1. MyBatis3.X 配置⽂件mybatis-config.xml常⻅属性核⼼配置⽂件(dom节点顺序要求,不然报错)官⽅⽂档:https://mybatis.org/mybatis-3/zh/configuration.html#2.MyBatis3.X 查询typeAlias别名的使⽤typeAlias类型别名,给类取个别名,可以不⽤输⼊类的全限定名如果有很多类,不⽤⼀个个配置,使⽤包扫描即可本身就内置很多别名,⽐如Integer、String、List、Map 等3原创 2022-01-24 16:14:51 · 236 阅读 · 0 评论 -
第十三章 MyBatis3.X玩转更新和删除
1. MyBatis3.X实战更新语法之视频更新操作update 语法更新视频对象2.MyBatis3.X更新语法之选择性更新标签使⽤可以选择性更新⾮空字段if test标签介绍if 标签可以通过判断传⼊的值来确定查询条件,test 指定⼀个OGNL表达式常⻅写法代码(⾥⾯包含⼀个惨痛教训,⼀定要看pojo类⾥⾯的是基本数据类型,还是包装数据类型)3.MyBatis3.X实战之删除语法和转义字符使⽤delete删除语法为什么要转义字符由于MyBatis的sql写在XM原创 2022-01-24 16:02:45 · 177 阅读 · 0 评论 -
第十二章 MyBatis3.X玩转查询和新增操作
1.Mybatis开发必备调试之控制台打印SqlMybatis使⽤流程创建mybatis-config.xml 全局的配置⽂件创建XXXMapper.xml配置⽂件创建SqlSessionFactory⽤SqlSessionFactory创建SqlSession对象⽤SqlSession执⾏增删改查CRUD内置的⽇志⼯⼚提供⽇志功能, 使⽤log4j配置打印sql,添加依赖在应⽤的classpath中创建名称为 log4j.properties 的⽂件2. Mybatis实战参数别原创 2022-01-24 15:46:45 · 386 阅读 · 0 评论 -
第十一章 从Javaweb原⽣jdbc到MyBatis3.X
1.javaweb通过原⽣jdbc访问数据库原⽣jdbc访问数据库步骤加载JDBC驱动程序创建数据库的连接创建preparedStatement执⾏SQL语句处理结果集关闭JDBC对象资源Springboot项⽬测试原⽣JDBC连接加载依赖包Main函数访问代码实操2.原⽣jdbc访问数据库缺点和ORM框架介绍原⽣jdbc缺点每次要加载驱动,连接信息是硬编码sql和java代码耦合⼀起,改动不易参数设置缺少灵活性处理结果集麻烦,不能⾃动映射到实体类连接资源不能复⽤原创 2022-01-24 14:47:42 · 412 阅读 · 0 评论 -
第⼗章 SpringBoot2.X整合定时任务和异步任务
1.SpringBoot2.X定时任务schedule讲解什么是定时任务,使⽤场景某个时间定时处理某个任务发邮件、短信等消息提醒订单通知统计报表系统常⻅定时任务Java⾃带的java.util.Timer类配置⽐较麻烦,时间延后问题Quartz框架: 配置更简单,xml或者注解适合分布式或者⼤型调度作业SpringBoot框架⾃带SpringBoot使⽤注解⽅式开启定时任务启动类⾥⾯ @EnableScheduling开启定时任务,⾃动扫描定时任务业务类 加注解 @Compone原创 2022-01-23 21:03:30 · 219 阅读 · 0 评论 -
第九章 SpringBoot2.X 整合模板引擎thymeleaf和Fk
1.SpringBoot2.x的starter和常⻅模板引擎讲解SpringBoot2.X常⽤start介绍starter主要简化依赖⽤的spring-boot-starter-web->⾥⾯包含多种依赖查看 pom⽂件 spring-boot-starter-parent -> spring-boot-dependencies ⾥⾯综合的很多依赖包⼏个常⽤的starterJSP(后端渲染,消耗性能)Java Server Pages 动态⽹⻚技术,由应⽤服务器中的J原创 2022-01-23 20:08:45 · 262 阅读 · 0 评论 -
第八章 Servlet3.0和SpringBoot2.X过滤器-拦截器
1. SpringBoot2.X过滤器什么是过滤器filter简单理解:⼈—>检票员(filter)—> 景点SpringBoot2.X⾥⾯的过滤器那么多过滤器,哪个优先级⾼呢?低位值意味着更⾼的优先级⾃定义Filter,避免和默认的Filter优先级⼀样,不然会冲突注册Filter配置两种⽅式bean FilterRegistrationBeanServlet3.0 webFileter2. 使⽤新版Servlet3.0的注解开发⾃定义Filter原创 2022-01-23 18:47:24 · 210 阅读 · 0 评论 -
第七章 Springboot2.X全局异常处理
1.SpringBoot2.x全局异常处理为什么要配置全局异常?不配全局服务端报错场景 1/0、空指针等配置好处统⼀的错误⻚⾯或者错误码对⽤户更友好Springboot2.X怎么在项⽬中配置全局异常类添加注解@ControllerAdvice,如果需要返回json数据,则⽅法需要加@ResponseBody@RestControllerAdvice, 默认返回json数据,⽅法不需要加@ResponseBody⽅法添加处理器捕获全局异常,处理所有不可知的异常@Except原创 2022-01-23 17:41:43 · 375 阅读 · 0 评论 -
第六章 SpringBoot2.x的单元测试
引⼊相关依赖配置相关注解常⽤单元测试的注解@before@Test@After断⾔:判断程序结果是否符合预期 TestCase.assertXXX原创 2022-01-23 17:07:55 · 145 阅读 · 0 评论 -
第五章 SpringBoot.2.X⾥⾯的配置⽂件
1.SpringBoot2.x常⻅配置⽂件形式常⻅的配置⽂件格式Springboot⾥⾯常⽤xx.ymlYAML(Yet Another Markup Language)写 YAML 要⽐写 XML 快得多(⽆需关注标签或引号) 使⽤空格 Space 缩进表示分层,不同层次之间的缩进可以使⽤不同的空格数⽬注意:key后⾯的冒号,后⾯⼀定要跟⼀个空格,树状结构Springboot⾥⾯常⽤ xx.properties(推荐)Key=Value格式2.SpringBoot注解配置⽂件映射属原创 2022-01-23 16:55:40 · 100 阅读 · 0 评论 -
第四章 SpringBoot2.X⾥⾯定制JSON字段
常⽤框架 阿⾥ fastjson,⾕歌gson等SpringBoot默认集成JacksonJavaBean序列化为Json性能:Jackson > FastJson > Gson > Json-lib 同个结构Jackson、FastJson、Gson类库各有优点,各有⾃⼰的专⻓jackson处理相关⾃动指定字段不返回:@JsonIgnore指定⽇期格式:@JsonFormat(pattern=“yyyy-MM-ddhh:mm:ss”,locale=“zh”,.原创 2022-01-23 16:31:31 · 164 阅读 · 0 评论 -
第三章 SpringBoot2.X开发HTTP接⼝
GET请求场景:⼀般的查询接⼝就是get请求注解:@GetMapping = @RequestMapping(method = RequestMethod.GET)⼀个顶两的注解POST请求-form表单场景:表单提交,如果不⽤细分PUT/DELETE⽅法,则都可以⽤POST注解:@PostMapping = @RequestMapping(method = RequestMethod.POST)POST请求-RequestBody⽅式场景:json对象映射,数组对象提交..原创 2022-01-23 16:03:03 · 185 阅读 · 0 评论 -
第二章 SpringBoot2.X开发规范
1.SpringBoot2.x⽬录⽂件结构讲解和静态资源访问⽬录讲解src/main/java:存放代码src/main/resourcesstatic: 存放静态⽂件,⽐如 css、js、image, (访问⽅式 http://localhost:8080/js/main.js)templates:存放静态⻚⾯jsp,html,tplconfig:存放配置⽂件,application.propertiesresources:同个⽂件的加载顺序,静态资源⽂件 Spring Boot 默原创 2022-01-23 15:40:37 · 170 阅读 · 0 评论 -
第一章 微服务必备核⼼-快速⼊⻔SpringBoot2.X
springboot原创 2022-01-23 15:13:19 · 202 阅读 · 0 评论