spring加强

1.@Scope
配置单例还是多例,spring默认是单例的;spring容器创建bean的实例
配置方式在是类上加注解,prototype是多例

2.El表达式的使用
可以在xml中和注解中使用
很多种形式,字符串,配置文件的值 ${person.name}

3.Bean的初始化和销毁
也就是bean的被创建时会有些操作,这里要理解bean的生命周期
配置类的方式,@Bean注解里面的属性
注解方式,JSR250的注解@PostConstruct/@PreDestroy

4.Profile
不同环境下不同的配置
三种方式:
Web项目,servlet中配置/配置类的话,实现webApplicationInitializer接口,重写onStartup方法
启动时,命令,jvm
注解@profile,在配置类的@Bean方法上,加
需要进行环境配置,使用context.getEnvironment().setActiveProfiles(“dev”),注册,刷新

5.事件Application Event
Bean和bean之间的消息通信,一个bean发布消息,另一个bean接受到消息并进行处理; 【类似于异步的操作了,解耦,不会阻塞】
定义事件 ApplicationEvent
事件监听 ApplicationListener<事件> 监听到事件后,对消息进行处理
事件发布 注入ApplicationContext 调用发布事件的方法

Spring aware
Bean本身对spring容器的存在没有意识,bean被声明为bean和被注入/组合/装配到另一个bean,是元数据来完成的(描述数据的数据,包括xml配置文件,注解),并由容器即spring对元注解进行加载
但是,一个bean,需要调用spring的资源,即要获取到spring容器
继承ApplicationContextAware接口即可

多线程 配置TaskExecutor
写配置类,配置类上开启异步支持,使用线程池,进行配置,包括设定线程池大小等参数; 这里是配置; 问题:实现了AsyncConfigurer配置类接口,实现getAsyncExecutor方法
使用,直接使用@Async注解即可,建议加在方法上,被加了的方法会被注入到TaskExecutor

定时任务 Schedule
写配置类,配置上开启支持
在需要定时的方法上直接使用注解即可,配置时间设置,cron

条件注解 @Conditional
基于某种条件来创建bean,即只有满足特定条件下,才会创建某个bean;这是自动配置的基础;
写条件类,实现Condition接口,重写matches方法。返回值是布尔,既满足条件与否
写配置类,@bean方法上,加@Conditional注解(条件),条件满足,才会创建这个bean

@Enable注解的原理
开启支持。开启一些功能的支持,异步,定时任务,webmvc,属性配置类配置,jpa,事务,缓存
这些@Enable
注解上都自动导入了一些配置类,@Import,即自动配置了一些bean
三种类型:
直接导入一个配置类
导入 根据条件来选择配置类 ImportSelector
动态注册bean,运行时添加bean到配置类


@propertySource是引入即导入一个配置文件(文件资源),classpath:com/ris/application.yml
对@Schedule的测试,直接使用配置类容器加载配置类即可,加载了,就注解都生效了
测试注解。@runwith,@ContextConfiguration(写xml配置文件,也可以写配置类,classes={ … })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值