spring
我会努力变强的
这个作者很懒,什么都没留下…
展开
-
Spring高级之注解@PropertySource详解(超详细)
定义/作用@PropertySource注解用于指定资源文件读取的位置,它不仅能读取properties文件,也能读取xml文件,并且通过YAML解析器,配合自定义PropertySourceFactory实现解析YAML文件。源码://只能作用在类上@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(PropertySources.class)public @interface原创 2020-06-06 16:36:49 · 52352 阅读 · 4 评论 -
Spring高级之注解@Import注解、ImportSelector、ImportBeanDefinitionRegistrar详解(超详细)
定义/作用@Import注解只能作用在类上,一种使用场景是在spring注解驱动开发环境下与配置类配合使用的,其作用是引用其他配置类。使得我们可以和早起的基于XML配置文件开发那样。使用不同的配置类配置不同的内容,比如Mysql数据源配置用一个配置类。Redis数据源配置用一个配置类等。然后使用在注解在一个主配置类中引入这些从配置类,使得配置更加清晰。被引入的类可以不使用@Configuration、@Component注解。另一种使用 场景是该注解也是一种注册bean的方案。可以在配置类中使用Impo原创 2020-06-06 12:35:43 · 3453 阅读 · 1 评论 -
Spring高级之注解@Bean详解(超详细)
定义/作用当我们要使用第三方类实现组件注册到IOC容器时,例如第三方数据库连接池等,我们无法修改他们的代码,所以我们不能通过@Component及其衍生注解来进行组件定义。这是,可以通过@Bean注解把第三方组件注册到IOC容器中。源码://能够作用在方法和注解上,作用在方法上和作用在注解上的用处不同,通常作用在方法上。@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNT原创 2020-06-05 21:41:30 · 4954 阅读 · 0 评论 -
Spring高级之注解@lazy详解(超详细)
定义/作用用于指定单例bean实例化的时机,在没有指定此注解时,单例会在容器初始化时就被创建。而当使用此注解后,单例对象的创建时机会在该bean在被第一次使用时创建,并且只创建一次。第二次及以后获取使用就不再创建。在实际开发场景中,并不是所有bean都要一开始就被创建的,有些可以等到使用时才创建。此时就可以使用该注解实现。此注解只对单例bean有用,原型bean时此注解不起作用。源码://可以作用在类上、方法上、构造器上、方法参数上、成员变量中。@Target({ElementType.TYPE原创 2020-06-05 18:08:41 · 15244 阅读 · 8 评论 -
Spring高级之注解@DependsOn详解(超详细)
定义/作用@DependsOn注解可以定义在类和方法上,意思是我这个组件要依赖于另一个组件,也就是说被依赖的组件会比该组件先注册到IOC容器中。使用场景:需要用到观察者模式的情况下通常都需要用到该注解,观察者模式(详细可查看相关文章)有三要输,观察者、事件源、事件,机制是观察者会监听数据源的某些时间,当事件源触发该事件后,观察者就会知道进行相应措施。比如老师是观察者,学生是事件源,学生迟到是事件,老师观察学生是否迟到,每当学生迟到,老师就会发现,并处罚该学生。这类场景一般需要观察者要比事件源先创建原创 2020-06-04 20:58:53 · 61275 阅读 · 1 评论 -
Spring高级之注解@ComponentScan详解(超详细)
定义/作用@ComponentScan注解用于实现spring主键的注解扫描,会扫描特定包内的类上的注解。源码(对属性进行一些简介,会在后文中详细讲解每个属性):@Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) //只能作用在类上,一般作用在配置类上。@Documented@Repeatable(ComponentScans.class)public @interface ComponentScan { @A原创 2020-06-04 18:57:09 · 9806 阅读 · 1 评论