
spring
文章平均质量分 83
spring
Andy_Health
永远不要停止奔跑。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot启动过程分析
一、 SpringBoot的启动类是**application,以注解@SpringBootApplication注明。@SpringBootApplicationpublic class CmsApplication { public static void main(String[] args) { SpringApplication.run(CmsApplication.class, args); }}SpringBootApplication注解是@Co转载 2021-04-16 16:23:49 · 162 阅读 · 0 评论 -
过滤器和拦截器的区别
过滤器(filter),过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源之间的请求和响应都要通过过滤器进行过滤。举例:在过滤器中定义了禁止访问192.10.10.1这个地址,那么当客户端发出访问192.10.10.1的请求时,经过过滤器后,客户端得到的响应是出现该IP禁止访问的提示。在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法转载 2020-11-05 16:29:31 · 220 阅读 · 0 评论 -
SpringBoot多数据源配置事务
在多数据源中配置事务,其实对于SpringBoot来很简单,当然这个的前提是首先把多数据源都配好的情况下,如果不会多数据源配置,请看该系列 SpringBoot整合多数据源1. 首先在启动类配置@SpringBootApplication@EnableTransactionManagementpublic class AccountApplication { public static void main(String[] args) { SpringApplication.转载 2020-10-27 17:59:00 · 590 阅读 · 0 评论 -
Spring - Bean的生命周期
Bean的一生过程因为当对应某个bean定义的getBean()方法第一次被调用时,不管是显示的还是隐式的,Bean实例化阶段才会被触发,第二次被调用则会直接返回容器缓存的第一次实例化完的对象实例(因为默认是singleton单例,当然,这里的情况prototype类型的bean除外)可以简述为以下九步实例化bean对象(通过构造方法或者工厂方法)设置对象属性(setter等)(依赖注入)如果Bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Be原创 2020-07-15 11:59:51 · 155 阅读 · 0 评论 -
Spring - 定时任务@Scheduled
Springboot中开启定时任务使用定时任务cron表达式语法[秒] [分] [小时] [日] [月] [周] [年]注:[年]不是必须的域,可以省略[年],则一共6个域由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?星期一: Mon 星期2: Tue 星期3: Wed 星期4: Thu 星期5: Fri 星期6: Sat 星期日: Sun...原创 2020-05-08 11:32:03 · 180 阅读 · 0 评论 -
Spring-Springmvc
Springmvc 是基于servlet 规范来完成的一个请求响应模块请求之前建立映射关系在HandlerMapping 类实例化的时候就会完成url 和method 的映射关系,要根据一个请求能够唯一到找到一个类和一个方法。这里判断类上面是否有@Controller 注解和@RequestMapping 注解,只有这种类才需要建立映射关系大体思路1、循环类里面的所有方法2、收...原创 2020-04-08 17:36:40 · 209 阅读 · 0 评论 -
Spring-缓存
开启缓存,加上@EnableCaching 注解cacheManager缓存管理器缓存管理器中管理了缓存对象,比如redis 缓存,map 缓存,mongodb 缓存,这些缓存对象都是些了Cache 顶层接口@Cacheable(value="users", key="#id") public User find(Integer id) { return null;}// 表示第...原创 2020-04-05 13:45:51 · 139 阅读 · 0 评论 -
Spring-事务&@Transactional事务传播
事务开启数据源和事务管理平台的加载都是在类ProxyTransactionManagementConfiguration 进行的。Connection 连接、事务、和用户会话在spring 中事务传播属性PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持...原创 2020-04-05 13:30:29 · 395 阅读 · 0 评论 -
Spring-AOP
AOP 入口通过扫描注解@EnableAspectJAutoProxy(proxyTargetClass =true,exposeProxy = true)注册了AOP 入口类,具体看看注解里面的@Import(AspectJAutoProxyRegistrar.class)proxyTargetClasstrue1、目标对象实现了接口– 使用CGLIB 代理机制2、目标对象没有接...原创 2020-04-03 15:28:57 · 1150 阅读 · 0 评论 -
Spring-bean销毁
在bean 创建完成后就会对这个bean 注册一个销毁的Adapter 对象,代码如下:这个DisposableBeanAdapter对象就是负责bean销毁的类。在这个类中收集了该bean是否实现了DisposableBean 接口,是否配置destroy-method 属性,过滤了DestructionAwareBeanPostProcessor 类型的接口。在tomcat 关闭的...原创 2020-03-20 14:04:18 · 289 阅读 · 0 评论 -
Spring-单例的循环依赖
AbstractApplicationContext.refresh()方法中finishBeanFactoryInitialization(beanFactory)方法,是核心方法。先在缓存中获得实例,调用getSingleton(beanName)方法,缓存中获取不到实例,则调用getSingleton(beanName, () -> {});方法先在一级缓存中拿一级...原创 2020-03-18 22:07:06 · 382 阅读 · 0 评论 -
Spring-bean实例化过程
BeanDefinitionRegistryPostProcessor调用分为三部分:1.调用实现了PriorityOrdered 排序接口2.调用实现了Ordered 排序接口3.没有实现接口的调用这个接口的理解:获取BeanDefinitionRegistry 对象,获取到这个对象就可以获取这个对象中注册的所有BeanDefinition 对象,所以我们知道了,我们拥有这个对象就可以...原创 2020-03-17 20:30:03 · 319 阅读 · 0 评论 -
Spring-解析context:component-scan base-package=""
spring.xml中配置注解扫描测试用例AnnotationConfigApplicationContext ,并调用refresh();方法根据解析xml路径,进入解析自定义xml标签,DefaultBeanDefinitionDocumentReader.parseBeanDefinitions()方法中delegate.parseCustomElement(ele);4....原创 2020-03-17 12:01:31 · 450 阅读 · 0 评论 -
Spring-xml解析源码跟踪
1.新建自己的spring项目,并新建一个test2.ClassPathXmlApplicationContext extends org.springframework.context.support.AbstractXmlApplicationContext,调用父类方法,AbstractXmlApplicationContext中 ClassPathXmlApplicationCont...原创 2020-03-16 15:17:10 · 167 阅读 · 0 评论 -
Spring-设计模式
1. 模板设计模式2. 委托模式有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象原创 2020-03-14 18:09:49 · 124 阅读 · 0 评论 -
Spring-xml解析
类加载路径ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“spring.xml”);步骤:ConfigurableListableBeanFactory beanFactory=obtainFreshBeanFactory();该方法主要进行 解析工作,流程如下:1、创建XmlBeanDe...原创 2020-03-14 18:05:34 · 140 阅读 · 0 评论 -
Spring-源码导入
1.创建一个新项目2. 重点:源码导入第一步:选择新建项目中spring源码jar右键第二步:找到对应源码包第三步:替换本地源码包找到spring-context/build/libs/spring-context-xx.jar然后把原来的去掉第四步:源文件替换把原来的去掉回代代码中就可以写注释了。打断点后发现对应不上了,需要重新编译spring源...原创 2020-03-14 17:55:50 · 234 阅读 · 0 评论