- 重要的概念
重要程度 |
概念 |
说明 |
***** |
IOC |
控制反转,将原来在代码中手动创建对象(也就是new)的操作,反转到由spring容器来进行创建并进行管理。目的:解耦。 |
***** |
DI |
依赖注入,由spring容器根据所管理的bean之间的依赖关注,自动进行注入赋值,替代了原来手动给对象属性赋值的操作。要点:依赖的双方必须都由spring容器来进行管理。目的:解耦。 |
***** |
AOP |
面向切面编程:意为将原来散落在系统中的重复性的功能代码抽取出独立的组件进行封装,然后使用动态代理的方式在不修改目标对象的情况下对其进行功能增强,可以实现可插拨式的编程,增加功能和去掉增强的功能对目标对象来说都是无感知的,基本上可以实现零耦合。目的:解耦、可重用、更灵活。 |
***** |
Spring事务 |
又称为声明式事务:主要解决业务层中包含多个持久层方法的调用时,如何来保证这些持久层方法要么同时执行,要么同时回滚,从而保证事务执行的一致性。目的:在业务层来管理统一事务。 |
2.学习的注解
重要程度 |
注解 |
作用 |
作用的地方 |
***** |
@Component |
实例化Bean |
类上 |
***** |
@Service |
实例化Bean |
业务类上 |
*** |
@Repository |
实例化Bean |
持久化类上 |
***** |
@Controller |
实例化Bean |
WEB组件上 |
** |
@Scope |
设置bean单例或多例 |
类上 |
** |
@PostContructor |
声明初始化方法 |
方法上 |
** |
@PreDestroy |
声明销毁方法 |
方法上 |
***** |
@Autowired |
自动按类型注入属性 |
属性上 |
** |
@Qualifier |
按名字注入,配置合@Autowired使用 |
属性或形参中 |
** |
@Resource |
按名字注入 |
属性上 |
***** |
@Value |
注入基本数据类型 |
属性上 |
***** |
@Bean |
实例化第三方法bean,将方法的返回值放入IOC容器中管理 |
配置类的方法上 |
***** |
@Configuration |
声明配置类 |
配置类上 |
***** |
@ComponentScan |
声明扫描指定包下所有的注解并进行解析执行 |
配置类上 |
***** |
@PropertySource |
指定引入properties属性文件并进行加载 |
配置类上 |
***** |
@Import |
合并配置类 |
配置类上 |
***** |
@RunWith |
指定运行器 |
测试类上 |
***** |
@ContextConfiguration |
用于指定测试时加载的配置类或配置文件 |
测试类上 |
***** |
@EnableAspectJAutoProxy |
开启注解开发AOP功能 |
配置类上 |
***** |
@Aspect |
设置当前类为通知类 |
通知类上 |
***** |
@Pointcut |
生命切点表达式 |
私有空方法上 |
** |
@Before |
前置通知:目标方法执行前执行 |
通知方法上 |
** |
@AfterReturning |
后置通知:目标方法正常执行后执行 |
通知方法上 |
** |
@AfterThrowing |
异常通知:目标方法抛出异常后执行 |
通知方法上 |
** |
@After |
最终通知:目标方法执行成功与否均执行 |
通知方法上 |
***** |
@Around |
环绕通知:可以在目标方法执行前后执行 |
通知方法上 |
***** |
@EnableTransactionManagement |
开启注解式事务驱动 |
配置类上 |
***** |
@Transactional |
声明当前业务方法或当前类的所有方法均由spring管理事务 |
接口、实现类或具体方法上 |