Spring注解:
Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,而加载bean到容器中可以使用注解方式或xml配置方式;
使用注解方式,不但减少了配置文件内容,更加便于管理,并且可以大大的提高开发效率;
其实注解本身是没有功能的,和xml一样,它们两者都是一种元数据,元数据即解释数据的数据,也就是所谓的配置;
注解与xml的作用:
Xml是用于管理bean的;
注解只负责完成属性的注入;
但在使用注解之前,需要注意,必须先开启注解的支持;
如下:
Spring的常用注解:
- 给容器注入组件;
·包扫描+组件标注注解;
·@Component;泛指各种组件;
·@Controller;@Service;@Repository都可以称为@Component;
·@Controller;控制层;
·@Service;业务层;
·@Repository;数据访问层
2.@Bean
导入第三方包里面的注解;
3.@Import
要导入到容器中的注解
注入bean的注解:
@Autowired:由bean提供
@Autowired可以作用在变量、setter方法、构造函数上;
有一个属性为required,可以配置为false;
@Inject:由JSR-330提供
@Inject用法和@Autowired一样。
@Resource:由JSR-250提供
@Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的,@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Name一起使用。
@Primary
可以让spring进行自动装配的时候,默认使用首选的bean,和@Qualifier一个效果。
@JsonIgnore的作用与使用:
·作用
在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。
·使用方法
一般标记在属性或者方法上,返回的json数据即不包含该属性。
·注解失效
如果注解失效,可能是因为你使用的是fastJson,尝试使用对应的注解来忽略字段,注解为:@JSONField(serialize = false),使用方法一样。
初始化和销毁方法
·通过@Bean(initMethod=“init”,destoryMethod=“destory”)方法
·通过bean实现InitializingBean来定义初始化逻辑,DisposableBean定义销毁逻辑
·可以使用JSR250:@PostConstruct:初始化方法;@PreDestory:销毁方法。
·BeanPostProcessor:bean的后置处理器,在bean初始化前后进行一些处理工作
postProcessBeforeInitialization:在初始化之前工作;
postProcessAfterInitialization:在初始化工作之后工作;
切面(AOP)的相关注解
·Spring支持AspectJ的注解式切面编程。
·@Aspect 声明一个切面
·@After 在方法执行之后执行(方法上)
·@Before 在方法执行之前执行(方法上)
·@Around 在方法执行之前与之后执行(方法上)
·@PointCut 声明切点
在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持