- 博客(53)
- 资源 (8)
- 收藏
- 关注
原创 Spring注解开发—— 43、@EventListener;注解来监听事件
43、扩展原理-@EventListener与SmartInitializingSingleton还可以使用 @EventListener; 来监听事件 原理:使用EventListenerMethodProcessor处理器来解析方法上的@EventListener;EventListenerMethodProcessor 实现SmartInitializingSingleton ,S...
2020-03-26 21:12:58 951
原创 Spring注解开发——41-42、ApplicationListener事件监听器用法
41、扩展原理-ApplicationListener用法ApplicationListener监听容器中发布的事件。事件驱动模型开发;public interface ApplicationListener<E extends ApplicationEvent>监听 ApplicationEvent 及其下面的子事件;步骤:1)、写一个监听器(Appli...
2020-03-26 20:59:58 364
原创 Spring注解开发——40、BeanDefinitionRegistryPostProcessor
40、扩展原理-BeanDefinitionRegistryPostProcessorBeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor postProcessBeanDefinitionRegistry(); 允许在常规BeanFactoryPostProcessor检测启动之前进一步的注册bean定义...
2020-03-25 22:01:52 184
原创 Spring注解开发——39、BeanFactoryPostProcessor
39、扩展原理-BeanFactoryPostProcessorBeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的 BeanFactoryPostProcessor:beanFactory的后置处理器; 在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容; 所有的bean定义已经保存加载到beanFactor...
2020-03-25 21:04:43 154
原创 JAVA基础-集合-18之 Iterator和Enumeration比较
第1部分 Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。Enumeration是一个接口,它的源码如下package...
2020-03-25 10:47:56 98
原创 Idea-jconsole使用idea
Idea的运行环境加上下面内容-Djava.rmi.server.hostname=127.0.0.1-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=11911-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremot...
2020-03-24 20:52:13 2388 1
原创 Spring注解开发——38、声明式事务-源码分析
总结:和AOP原理一样1、@EnableTransactionManagement利用TransactionManagementConfigurationSelector给容器中会导入组件导入两个组件AutoProxyRegistrar ProxyTransactionManagementConfiguration2、AutoProxyRegistrar给容器中注册一个 I...
2020-03-24 19:25:37 122
原创 Spring注解开发——37、声明式事务-测试成功
37 声明式事务-测试成功1、想实现申明式事务必须要以下几步:1) 在配置类上边标注@EnableTransactionManagement开启申明式事务 2) 在配置文件中必须要注册PlatformTransactionManager的事务管理器 3) 在需要事务处理的方法上加上@Transactional注解package com.suirui.springanno.tx.co...
2020-03-24 17:54:46 635
原创 Spring注解开发——36、声明式事务-环境搭建
36、声明式事务-环境搭建1、导入相关依赖数据源、数据库驱动、Spring jdbc模块注意:mysql的驱动要和mysql版本对应。<dependencies> <dependency> <groupId>org.springframework</groupId> &l...
2020-03-24 17:39:25 107
原创 Spring注解开发——实现Spring AOP 注解驱动的原理总结
首先在配置类上标注@EnableAspectJAutoProxy注解,开启AOP功能 @EnableAspectJAutoProxy 会给容器中注册一个组件 AnnotationAwareAspectJAutoProxyCreator AnnotationAwareAspectJAutoProxyCreator是一个后置处理器 容器的创建流程: registerBeanPostProces...
2020-03-24 16:57:47 144
原创 Spring注解开发——28-35 Aop原理
Aop原理:(spring原理都是看给容器注册了什么组件,这个组件什么时候工作,功能是什么)1、@EnableAspectJAuoProxy:给容器中注册了 internalAutoProxyCreator=AnnotationAwareAspectJAutoProxyCreator的组件。2、AnnotationAwareAspectJAutoProxyCreator...
2020-03-23 14:53:05 463
原创 Spring注解开发——27、AOP-AOP功能测试
27、AOP-AOP功能测试AOP : 【动态代理】指程序运行期间动态的将某段代码切入到制定方法位置进行运行的编程方式。导入AOP模块:Spring AOP(spring-aspects) 定义一个业务逻辑类(Mathcalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行之后等) 定义一个日志切面类(LogAspects):切面类里面的方法需要动态感知MathC...
2020-03-22 17:49:21 507
原创 Spring注解开发——25、自动装配-@Profile根据环境注册bean
目录25、自动装配-@Profile根据环境注册bean25.1切换环境-使用命令行动态参数25.3 切换环境-使用代码的方式步骤25、自动装配-@Profile根据环境注册bean指定组件在哪个环境的情况下才能被注册到容器中 加了环境标识的,只有这个环境被激活才能注册到组件中切换环境-使用命令行动态参数: -Dspring.profiles.active=...
2020-03-22 17:04:22 216
原创 Spring注解开发——24、自动装配-@Profile环境搭建--读取property文件的三种方法
目录24、自动装配-@Profile环境搭建24.1 添加 数据源和jdbc驱动 pom 依赖实例:24、自动装配-@Profile环境搭建Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能。 实际应用:开发环境、测试环境、正式环境 数据源切换读取property文件的两种方法@Value 放到属性上 @Value 放到方法参数上 通过awar...
2020-03-22 16:47:43 247
原创 Spring注解开发——23、自动装配-Aware注入Spring底层组件&原理
23、自动装配-Aware注入Spring底层组件&原理Aware 接口,提供了类似回调函数的功能 自定义组件想要使用Spring 容器底层的一些组件(ApplicationContext,BeanFactory);自定义组件需要实现xxxAware接口;在创建对象的时候,会调用接口规定的方法注入相关组件package org.springframework.beans.fact...
2020-03-22 16:02:33 222
原创 Spring注解开发——22、自动装配-方法、构造器位置的自动装配
22.1@Autowired标注在方法上标注在方法上,Spring容器创建当前对象,就会调用方法,完成赋值 方法使用的参数,自定义类型的值从IOC容器中获取package com.suirui.springanno.autowiredDemo.entity;import org.springframework.stereotype.Component;@Componentp...
2020-03-22 12:01:20 224
原创 Spring注解开发——21、自动装配-@Resource&@Inject
21、自动装配-@Resource&@InjectSpring 还支持使用@Resource(JSR250)和@Inject(JSR330)[Java规范的注解] AutowiredAnnotationBeanPostProcessor完成解析自动装配功能21.1 @Resource可以和@Autowired一样实现自动注入功能,默认是按照组件名称进行装配的。 没有能支持@...
2020-03-22 11:25:46 141
原创 Spring注解开发——20、自动装配(类赋值)-@Autowired&@Qualifier&@Primary
20、自动装配(类赋值)-@Autowired&@Qualifier&@Primary自动装配:Spring 利用依赖注入(DI),完成对IOC容器中各个依赖关系赋值20.1 @Autowired :自动注入默认情况优先按照类型去容器中找对应的组件,applicationContext.getBean(BookRepository.class),找到就赋值。 如果找到...
2020-03-22 11:19:37 227
原创 Spring注解开发——19、属性赋值-@PropertySource加载外部配置文件
19、属性赋值-@PropertySource加载外部配置文件加载外部配置文件的注解19.1 【xml】在原先的xml 中需要 导入context:property-placeholder 声明,然后使用${nickName}取值<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.sprin...
2020-03-22 10:31:37 446
原创 Spring注解开发——18、属性赋值-@Value赋值
18、属性赋值-@Value赋值18.1 使用@Value赋值三种方式基本数值 可以写SPEL 表达式,例如: #{} 可以写${} ,取出配置文件中的值(在运行环境变量里面的值)18.2使用基本数值和SPEL表达式package com.suirui.springanno.propertyValues.entity;import org.springframework....
2020-03-22 10:20:00 399
原创 Spring注解开发——17、生命周期-BeanPostProcessor在Spring底层的使用
bean赋值、注入其他组件、@Autowired注解、生命周期注解、@Async ……都是 BeanPostProcessor实现的
2020-03-19 22:06:48 130
原创 Spring注解开发——16、生命周期-BeanPostProcessor原理
16.1 打断点运行postProcessBeforeInitialization
2020-03-19 21:40:42 133
原创 Spring注解开发——15、生命周期-BeanPostProcessor-后置处理器
15、生命周期-BeanPostProcessor-后置处理器BeanPostProcessor 接口package org.springframework.beans.factory.config;import org.springframework.beans.BeansException;import org.springframework.lang.Nullable;pu...
2020-03-19 21:25:07 140
原创 Spring注解开发——14、生命周期-@PostConstruct&@PreDestroy
14、生命周期-@PostConstruct&@PreDestroy@PostConstruct 在Bean创建完并且属性值赋值完执行package javax.annotation;import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;import static jav...
2020-03-19 21:13:18 222
原创 Spring注解开发——13、生命周期-InitializingBean和DisposableBean
InitializingBean接口package org.springframework.beans.factory;public interface InitializingBean { // 当BeanFactory创建完对象,并且设置完属性之后调用 = init void afterPropertiesSet() throws Exception;}Dispo...
2020-03-19 21:06:48 161
原创 Spring注解开发——12、生命周期-@Bean指定初始化和销毁方法
12、生命周期-@Bean指定初始化和销毁方法Bean的生命周期:创建-》初始化-》销毁 容器管理bean的生命周期 我们可以自定义初始方法和销毁方法,容器在bean进行到当期那生命周期的时候调用我们自定的方法 构造(对象创建): 单实例:在容器启动的时候创建 多实例:在实例被每次调用的时候创建对象 初始化:对象创建完成并赋值好,调用初始化方法 销毁: 单实例:在容器关闭...
2020-03-19 20:26:56 209
原创 Spring注解开发——11、组件注册-使用FactoryBean注册组件
11、组件注册-使用FactoryBean注册组件package org.springframework.beans.factory;import org.springframework.lang.Nullable;public interface FactoryBean<T> { @Nullable T getObject() throws Excep...
2020-03-19 09:33:56 137
原创 Spring注解开发——10、组件注册-@Import-使用ImportBeanDefinitionRegistrar
10、组件注册-@Import-使用ImportBeanDefinitionRegistrarpublic interface ImportBeanDefinitionRegistrar { /** * Register bean definitions as necessary based on the given annotation metadata of ...
2020-03-19 09:33:44 136
原创 Spring注解开发——9.@Import-使用ImportSelector
9.1 @Import 源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Import { /** * {@link Configuration}, {@link ImportSelector}, {@link ImportBeanDe...
2020-03-19 09:33:30 321
原创 Spring注解开发——8、组件注册-@Import-给容器中快速导入一个组件
8.1 给容器中注册组建的方式共四种1、包扫描+组建标注注解(@Controller、@Service、@Repository、@Component)【有局限,不是自己写的就无法注入】2、@Bean【导入第三方包里面的组件】3、@Import【快速的给容器中导入一个组件】@Import({要导入到容器中的组件})// 快速导入组建,ID 默认是全路径包名 @Import使用I...
2020-03-19 09:33:06 141 1
原创 Spring注解开发——7、组件注册-@Conditional-按照条件注册bean
@Conditional 按照一定的条件进行判断,满足条件给容器注入bean按照条件进行动态装配。Spring 4 开始提供的一个注解,Spring Boot底层大量运用此注解。@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @...
2020-03-18 20:47:54 154
原创 Spring注解开发—— 6、组件注册-@Lazy-bean懒加载
6、组件注册-@Lazy-bean懒加载 懒加载:单实例bean,默认是在容器启动的时候创建对象;懒加载就是启动的是不创建,在第一次使用的时候再创建对象。 @Lazy // 单实例下懒加载bean ...
2020-03-18 20:24:37 140
原创 Spring注解开发—— 5、组件注册-@Scope-设置组件作用域
5、组件注册-@Scope-设置组件作用域IOC容器默认都是单实例的package com.suirui.springanno.config;import com.suirui.springanno.entity.Person;import org.springframework.context.annotation.*;@Configuration //告诉Spring这是...
2020-03-18 20:19:55 164
原创 Spring注解开发—— 4、组件注册-自定义TypeFilter指定过滤规则 4、组件注册-自定义TypeFilter指定过滤规则
4.1 FilterType.ANNOTATION 按照注解方式package com.suirui.springanno.config;import com.suirui.springanno.entity.Person;import org.springframework.context.annotation.*;import org.springframework.ster...
2020-03-18 20:11:46 683
原创 Spring注解开发——3、组件注册-@ComponentScan-自动扫描组件&指定扫描规则
3.1 xml方式 benas.xml 导入context命名空间<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...
2020-03-18 19:58:45 224
原创 Spring注解开发——2、组件注册-@Configuration&@Bean给容器中注册组件
1、xml方式 注册Bean1 、新建 Pension.java 实体类package com.suirui.springanno.entity;public class Person { public Person() { } String name; int age; public String getName() { ...
2020-03-18 19:27:53 167
原创 JAVA基础-集合-17.TreeSet
第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。TreeSet 实现了N...
2020-03-18 10:36:52 643
原创 JAVA基础-集合-16.HashSet
第1部分 HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象...
2020-03-18 10:28:31 94
Spring-quartz.zip
2020-06-03
单点登录: 仿CAS sso.zip
2020-05-14
Labview 同步
2017-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人