Spring IoC、DI依赖注入、Spring AOP、事务管理以及整合Junit的相关注解笔记。
一、Ioc控制反转
注解 | 描述 |
@Component | 通用的注解,可标注任意类为 Spring 的组件。如果一个 Bean 不知道属于哪个层,可以使用 @Component 注解标注。 |
@Controller | 作用于表现层(web) |
@Service | 作用于业务逻辑层(service) |
@Repository | 作用于持久层(dao)(整合hibernate时使用) |
@Configuration | 声明配置类 |
@ComponentScan | 扫描需要加载类的包 |
二、DI依赖注入
注解 | 描述 |
@Resource | 按照类型注入 |
@Resource(name=" ") | 按照名称注入 |
@Value | 简单数据注入 |
@PropertySource()& @Value(“${key}”) | 键值properties配置文件 |
@Autowired | 自动注入,与@Resource效果一样,只能按照类型 |
@Autowired & @Qualifier(“名称”) | 按照名称注入 |
三、Junit整合
注解 | 描述 |
@RunWith(SpringRunner.class) | 让类运行在Spring的测试环境,以便测试开始时自动创建Spring应用上下文 |
@ContextConfiguration(classes ={" "}) | 加载配置类 |
四、AOP切面编程
注解 | 描述 |
@EnableAspectJAutoProxy | 配置类,开启AOP |
@Aspect | 作用是把当前类标识为一个切面供容器读取 |
@Before | 前置通知(在实际方法调用之前调用被注解的通知方法) |
@AfterReturning | 后置通知(实际方法执行完毕后执行该通知,注意抛出异常则不会执行该通知) |
@Around | 环绕通知(方法执行之前和之后都可以执行通知指定动作,这个比较强大) |
@AfterThrowing | 抛出异常通知(实际执行方法抛出异常执行该通知) |
@After | 最终通知(实际方法调用之后执行该通知,不论是否发生异常) |
@Pointcut(“表达式”) public void xxx(){} | 抽取切入点表达式 |
五、事务管理
注解 | 描述 |
@EnableTransactionManagement | 配置类,开启事务管理 |
@Transactional | service事务配置(类、方法)、(只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能) |