开发框架
文章平均质量分 92
开发框架
又菜又爱玩٩( ö̆ ) و
人菜就要多学习
展开
-
Mybatis整合Spring源码分析
一、整合配置POM<!-- mybatis框架 --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version></dependency><!--mybatis-spring适配器 --><dependency>原创 2021-12-17 17:16:15 · 501 阅读 · 0 评论 -
Mybatis执行过程源码解析
//使用Mybatis执行查询sql代码示例 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build( Resources.getResourceAsReader("mybatis-config.xml")); SqlSession sqlSession = sqlSessionFactory.openSession(); User user = (User)sql..原创 2021-12-16 13:38:01 · 375 阅读 · 0 评论 -
Spring MVC 执行流程源码解析
执行流程流程1.客户端发送请求request到DispatcherServlet2.DispatcherServlet根据请求url去HandlerMapping查找处理器handler,HandlerMapping会返回处理器执行链HandlerExecutionChain(其中包括拦截器和处理器)3.DispatcherServlet通过handler去获取支持的处理器适配器HandlerAdapter4.DispatcherServlet通过HandlerAdapter去执行处理器handl原创 2021-11-28 22:21:24 · 361 阅读 · 0 评论 -
SpringBoot启动原理源码解析
jar运行SpringBoot应用spring-boot-maven-pluginjava -jar启动,首先需要配置一个插件,该插件会:在打包时帮我们编写MANIFEST.MF文件;把项目所依赖的jar包也都打包到jar中,成为fat jar。<!-- pom.xml文件中默认使用该插件进行打包 --><build> <plugins> <plugin> <groupId>org.s原创 2021-11-25 17:36:01 · 610 阅读 · 0 评论 -
SpringBoot自动配置原理源码解析
自动配置原理DeferredImportSelectorSpring集成外部框架Spring集成其他框架,一般都是通过注解@EnableXXX的方式,在@EnableXXX注解中会有@Import注解,@Import导入的Bean(有3种方式:@Import({ 类名.class , 类名.class… });ImportSelector;ImportBeanDefinitionRegistrar)其实就是集成框架的关键Bean。自定义配置类如果项目中已经有默认的组件A配置(通过@Import),原创 2021-11-24 17:38:43 · 537 阅读 · 0 评论 -
Spring Bean循环依赖源码解析
循环依赖所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。Spring解决循环依赖Spring通过三级缓存的方式来解决循环依赖的问题。DefaultSingletonBeanRegistry类中的三个缓存变量/** 一级缓存:单例缓存池,用于保存所有的单实例bean */private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);/** 三级缓原创 2021-11-23 16:26:49 · 521 阅读 · 0 评论 -
Spring IOC容器加载过程源码
一、IOC容器加载过程实例化容器入口// 加载spring上下文,同时传入自己的配置类ConfigAnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);从AnnotationConfigApplicationContext构造方法作为切入点:public AnnotationConfigApplicationContext(Class<?>..原创 2021-11-18 17:42:10 · 712 阅读 · 0 评论 -
Spring事务原理源码级解析
一、开启事务1.@EnableTransactionManagement通过@EnableTransactionManagement注解开启事务,@Import注解可以为容器中导入组件TransactionManagementConfigurationSelector@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(TransactionManagementConfigurationSel原创 2021-11-17 17:41:54 · 447 阅读 · 0 评论 -
Spring AOP原理源码级解析
1.AOP核心接口AnnotationAwareAspectJAutoProxyCreator1.1查找核心接口1.Spring通过注解**@EnableAspectJAutoProxy**开启aop切面功能:其中有**@Import(AspectJAutoProxyRegistrar.class)**,把AspectJAutoProxyRegistrar实例加入IOC容器中;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)原创 2021-11-16 13:57:17 · 441 阅读 · 0 评论 -
SpringSecurity(三)授权流程
授权流程1、拦截请求,已认证用户访问受保护的web资源将被SecurityFilterChain中(实现类为DefaultSecurityFilterChain)的 FilterSecurityInterceptor 的子类拦截。FilterSecurityInterceptor: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExcept原创 2021-07-02 11:40:00 · 274 阅读 · 0 评论 -
SpringSecurity(二)认证流程
认证流程1.UsernamePasswordAuthenticationFilter的父类AbstractAuthenticationProcessingFilter,它的doFilter方法中authResult = attemptAuthentication(request, response); 触发了子类的attemptAuthentication方法;2.用户提交的用户名、密码被SecurityFilterChain中的 UsernamePasswordAuthenticationFilte原创 2021-07-01 17:47:44 · 187 阅读 · 2 评论 -
Spring boot使用JPA注解@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy 自动生成
实体类:在类上加上注解@EntityListeners(AuditingEntityListener.class)相关属性上使用@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy注解@Data@MappedSuperclass@EntityListeners(AuditingEntityListener.class)...原创 2020-03-10 17:13:41 · 3647 阅读 · 1 评论 -
SpringBoot如何优雅的校验参数
前言做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的。如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量的IF ELSE就比如下面这样:这个例子只是校验了一下空参数。如果需要验证邮箱格式和手机号格式校验的话代码会更多,所以介绍一下validator通过注解的方式进行校验参数。什么是Validat...转载 2019-12-12 16:01:18 · 607 阅读 · 2 评论 -
Spring版本时间(更新)
Spring1.0 2004年3月24 包含IoC,AOP,XML配置参考https://spring.io/blog/2004/03/24/spring-framework-1-0-final-releasedSpring 2.0 2006年10月3参考https://spring.io/blog/2006/10/03/spring-2-0-final-re...原创 2019-11-21 17:45:25 · 4462 阅读 · 0 评论 -
Spring常用注解
目录一、注册Bean@Component@Repository/@Service/@Controller@RestController二、注入Bean@Autowired@Qualifier@Resource@Inject三、Controller参数接收@RequestParam@RequestBody@ModelAttribute@Path...原创 2019-11-20 17:48:27 · 327 阅读 · 0 评论 -
Spring Boot 2 打War 包部署
Spring Boot War 部署1 修改打包方式为 War修改Spring Boot项目的pom.xml文件将打包方式修改为war。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww...原创 2019-11-07 16:00:51 · 141 阅读 · 0 评论 -
SpringSecurity登录后自定义成功和失败处理器(源码级讲解)
文章转载自https://www.jianshu.com/p/5b660b32d96d一、简单叙述上一节【SpringSecurity登陆原理(源码级讲解)】已经讲过了完整的登录流程,所以此处不再重复讲解,只是接着上一节继续讲解。登陆完后会给我们返回信息,这没毛病,但是问题来了,他跳转了页面,假设我们不想跳转页面,只想返回固定格式的JSON呢?这就需要我们自定义成功处理器了。失败的情况...转载 2019-07-05 23:09:48 · 1386 阅读 · 0 评论 -
Mybatis总结
Mybatis1.持久层的框架,支持普通的sql语句,存储过程2.封装了底层的jdbc3.提高开发效率4.sql语句可以配置到xml文件中,注解框架的使用建库 create database mydb;1.建表create table t_user( id int auto_increment primary key, name varchar(...原创 2019-02-22 17:17:37 · 91 阅读 · 0 评论 -
Spring小结
Java Bean类的定义,符合如下规则的Java对象称为Java Bean必须有包 必须有无参数构造器 必须实现 序列化接口 所有属性为private 有getXXX setXXX 方法声明的"Bean属性".Spring Bean通常来说,Java Bean配置元数据,被 Spring IOC容器所管理,就成为Spring beans 配置元数据通常以XML,注解或J...原创 2019-02-25 14:20:11 · 141 阅读 · 0 评论 -
Spring AOP
文章转载自五月的仓颉,原文地址:http://www.cnblogs.com/xrq730/p/4919025.html如有侵权,请联系本人删除AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,...转载 2019-02-25 14:46:56 · 83 阅读 · 0 评论 -
Spring data jpa主要接口以及方法
Repository父接口标记型接口,不包含任何方法.源代码:package org.springframework.data.repository;import org.springframework.stereotype.Indexed;@Indexedpublic interface Repository<T, ID> {}<T>是...原创 2019-03-17 03:00:03 · 928 阅读 · 0 评论 -
Spring data Jpa查询
1.继承自JpaRepository<T,ID>后,可以直接在service使用父接口的查询方法。如findOne,findById,findAll等方法进行查询一个,多个或分页查询操作父接口自带方法可看:https://blog.csdn.net/a972669015/article/details/88610480 @Override public UserAccou...原创 2019-03-17 12:32:39 · 185 阅读 · 0 评论 -
Spring data Jpa修改操作
Jpa进行update操作的方式:1.save操作:先通过查询方法找到要修改的实例,然后通过setXXX对属性进行修改,最后进行save操作。 //根据输入指令流水号查询未完成的操作 InstInput instInput = instInputRepository.findByInputNo(Long.valueOf(inputNo)); log.info("AccountCo...原创 2019-03-17 15:18:26 · 12040 阅读 · 3 评论 -
实现一个MVC框架
实现一个MVC框架(1)java反射基础(2)java注解代码package base.annotation;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;/***Java注解默认只保留到源代码里面(即编译时,java注解会被抹掉。*使用@Ret...原创 2019-06-21 23:07:46 · 127 阅读 · 0 评论 -
SpringBoot线程池的创建、@Async配置步骤及注意事项
文章转载自https://blog.csdn.net/Muscleheng/article/details/81409672,如有侵权请联系删除 前 言:最近在做订单模块,用户购买服务类产品之后,需要进行预约,预约成功之后分别给商家和用户发送提醒短信...转载 2019-05-16 19:41:07 · 137 阅读 · 0 评论 -
Spring缓存注解
@CacheConfig用于配置该类中会用到的一些共用的缓存配置。主要属性: // IntelliJ API Decompiler stub source generated from a class file // Implementation of methods is not availablepackage org.springframework.cache.an...原创 2019-06-26 16:28:22 · 1013 阅读 · 0 评论 -
query.setFirstResult() ,query.setMaxResults()
query.setFirstResult(a),query.setMaxResults(b); == MySQL中的limit a, b;a = size * (page - 1)b = sizesetFirstResult表示从第几条记录开始,setMaxResults 是每页要查询的条数。区分: List list = query.getR...原创 2019-04-06 09:24:23 · 1730 阅读 · 0 评论 -
SpringSecurity(一)总体结构及使用
文章转载自https://www.jianshu.com/p/a65f883de0c1一、简单叙述首先会进入UsernamePasswordAuthenticationFilter并且设置权限为null和是否授权为false,然后进入ProviderManager查找支持UsernamepasswordAuthenticationToken的provider并且调用provider.a...原创 2019-07-04 15:54:16 · 529 阅读 · 0 评论 -
Spring MVC总结
MVC (Model View Controller 模型 视图 控制器)MVC是什么?是一种软件架构思想、其核心思想是,要将数据处理与数据展现分开,按照这种思想,我们一般将软件划分成三种不同类型的模块,分别是模型(用来处理业务逻辑,即数据处理),视图(数据展现,即用户交互的界面)及控制器(用来协调模型和视图)。注: 用户通过视图将请求发送给控制器,由控制器选择合适的模型来处理...原创 2019-01-26 17:16:20 · 142 阅读 · 0 评论