spring

主要提供的能力

ioc

  • 通过依赖注入,面向接口编程实现解耦
  • 每个被spring管理的java对象称之为bean
  • xml、注解、java配置都是在配置元数据。所谓的元数据是指本身没有任何的执行能力,需要外部代码解析(这里就是spring)
  • 申明bean:@Component(无特定含义) @Service(服务层使用) @Repository(dao层使用) @Controller(mvc的控制层使用),都是等效的
  • @Scope() :1、在ioc容器中单例(默认) 2、每次获取到不同的实例 3、每个http session单例 4、每个http request单例
  • 注入bean:@Autowired @Inject @Resource
  • 配置类:@Configuration,相当于一个xml配置文件
  • 扫描类:@ComponentScan 扫描指定包中的申明的所有bean,注册到ioc容器中
  • @Bean在方法上:声明当前方法返回一个bean,bean名为方法名
  • @Configuration和@Bean的配合使用就是java配置模式
  • 使用容器的方式:1、创建一个容器上下文(需要将配置的类传入) 2、通过类名从容器中获取实例
  • bean初始化和销毁:@PostConstruct @PreDestroy @Bean(initMethod=”“,destroyMethod=”“)

aop

  • 实现声明式编程?
  • 使用aop和模板减少模式化代码
  • 可以让一组类共享一组相同方法,弥补oop中继承的不足
  • 声明切面:@Aspect
  • 拦截切点:@After @Before @Around
  • 定义拦截规则:@PointCut
  • 应用:spring的事务(@Transcational)、数据缓存(@Cacheable)
  • 开启AspectJ @EnableAspectJAutoProxy

el

  • @Value(el表达式):注入一些配置信息 @Value(“${book.name}”)
  • @PropertySource():设置注入的配置信息所在文件

识别配置环境

  • @Profile:在特定的环境下做某事

事件

  • bean和bean之间通信
  • 步骤:1、继承ApplicationEvent定义事件 2、继承ApplicationListener实现监听并做某事 3、注入ApplicationContext发布事件

Spring Aware

  • bean将和Spring有耦合,这样可以调用spring提供更多资源
  • 继承ApplicationContextAware可以获得spring容器的所有服务:Bean名称,加载外部资源文件

多线程

  • 实现AsyncConfigurer接口,同时@EnableAsync开启异步任务的支持
  • 实现方法,返回一个Executor,使用的是ThreadPoolTaskExecutor实现类
  • 在service中的方法上加上@Async表明是一个异步方法

计划任务

  • @EnableScheduling开启对计划任务的支持
  • 在service中的方法上加上@Scheduled表明是一个计划任务
  • 时间周期的配置可以再@Scheduled中用cron表达式配置

@Conditional

  • 比如说:引入某个包才加载某个bean;初始化了某个bean才初始化另外一个bean
  • 实现Condition接口定义一个类,eg:class A implements Condition
  • 使用@Conditional(A.class)条件话创建bean
@Bean
@Conditional(A.class)
public ListService listService(){return new ……}

组合注解 元注解

  • 组合注解:将多个注解合并到一起
  • 元注解:可以注解到别的注解上的注解

@Enable*注解

1.第一种(直接导入配置),在@Enable* 的内部,其实用了@import注解,用来导入一些自动配置的bean
2.第二种(依据条件导入),在@Enable* 的内部,@import导入一个ImportSelector的实现类,重写selectImports()方法,返回配置类
3.第三种(动态注册),在@Enable* 的内部,@import导入ImportBeanDefinitionRegistrar的实现类,运行时自动添加bean到已有的配置类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值