1、使用注解开发
使用注解必须导入aop的包
必须导入context约束,增加注解的支持。
1.1完全使用注解
//@Configuration代表一个配置类,就是之前的beans.xml
@Configuration
@ComponentScan("com.cqupt")
@Import(AppConfig.class)
public class AppConfig {
//注册一个bean,相当于以前的bean标签
//getUser相当与id
//返回值相当于bean标签中的class
@Bean
public User getUser(){
return new User();
}
}
public static void main(String[] args) {
//使用注解配置
ApplicationContext context =
new AnnotationConfigApplicationContext(AppConfig.class);
User user = context.getBean("getUser", User.class);
System.out.println(user.getName());
}
纯注解的开发在SpringBoot中随处可见。
注解声明
- @Autowired :自动装配通过类型,byType自动装配的。
如果@Auotwired不能通过类型唯一装配,就需要@Qualifier(value = ‘XX’)来指定名字(byName)实现自动装配。 - @Resource:自动装配通过名字,然后在检查类型。
- @Nullable : 字段标了这个注解,表示这个字段可以为null。
- @Value(“xxx”) : 相当于<property name = “xxx” value=’'ds">
使用@component注解,需要加<context:component-scan base-package = ‘指定包下的类’>
- @Component : 组件,放在类上,说明这个类已经被Spring管理了,等价于<bean id = “xx” class = “…”
衍生的注解:
- @component有几个衍生注解,也就是别名
- 在dao 【@Repository】
- service 【@Service】
- controller 【@Controller】
- @Scope(“单例/原型”)
使注解生效,必须开启注解支持
<!--指定要扫描的包,这个包下的注解就会生效-->
<context: component-scan base-package="com.cqupt.pojo" />
<context:annotation-config/ >
2、代理模式
代理模式就是SpringAop的底层原理。代理模式分为静态代理和动态代理。
去理解动态代理的好处和代码的实现。