spring注解详解

(1)声明bean的注解
@Component:泛指组件,Springboot分为@Controller、@Service、@Repository标注控制层组件、业务层组件、数据层组件(DAO层),当创建的类不好归类时,可添加该注解。Spring会通过IOC容器自动实例话该类。
@Service在业务逻辑层使用
@Repository在数据访问层使用(dao层)
@Controller在展现层使用,控制器的声明
(2)注入bean的注解
@Autowired与@Resource,自动注入注解,@Autowired默认按照type查找bean,由Spring提供 @Resource默认按照name来查找bean,由JSR提供
(3)java配置类相关注解
@Configuration声明当前类为配置类,相当于xml文件形式的Spring配置(作用在类上)
@Bean注解在方法上,声明当前方法的返回值为一个bean,代替xml的方式(作用在方法上)
@ComponentScan组件扫描,可自动发现和装配一些bean。创建一个配置类,在配置类上添加该注解,默认会扫描该类所在包及其子包。相当于xml中的context:component-scan
详细解释:链接
(4)、切面(aop)相关注解
Spring支持AspectJ的注解式切面编程
@AspectJ声明一个切面(作用在类上)
@After在方法执行之后执行(方法上)
@Before在方法执行之前执行(方法上)
@Around在方法执行之前与之后执行(方法上)
@PointCut声明切点
在Springboot中 使用spring.aop.auto = true。

(5)@Bean的属性支持
@Scope设置Spring容器以何种方式新建Bean实例(作用在方法上,得有@Bean)
其设置类型包括:
Singleton(单例,一个Spring容器中只有一个bean实例,默认模式)
Protetype(每次调用新建一个bean)
(6)@Value注解
@Value为属性注入值(属性上)
详解:链接
(7)环境切换
@Profile通过设定Environment的ActiveProfile来设定当前context需要使用的配置环境
@Conditional:使用此注解定义条件化的bean,通过实现condition接口,并重写matches方法,从而决定该bean是否被实例化
@ConditionalOnBean、@ConditionalOnMissingBean
@ConditionalOnClass、@ConditionalOnMissingClass
@ConditionalOnWebApplication、@ConditionalOnNotWebApplication
@ConditionalOnSingleCandidate
@ConditionalOnExpression
@ConditionalOnProperty
@ConditionalOnResource
@ConditionalOnJndi
@ConditionalOnJava
(8)异步相关
@EnableAsync配置类中,通过此注解开启异步任务的支持,叙事性AsyncConfigure接口
@Async在实际执行的bean方法使用该注解来申明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)
详情:链接
(9)定时任务相关
@EnableScheduling在配置类上使用,开启计划任务的支持
@Scheduled来声明这是一个任务,包括cron,fixDelay,fixRate等类型(作用在方法上,需先开启计划任务的支持)
(10)Enable*注解说明
一般都是开启对xxx的支持
@EnableAspectJAutoProxy开启对AspectJ自动代理的支持
@EnableAsync开启异步方法的支持
@EnableScheduling开启计划任务的支持
@EnableWebMvc开启Web MVC的配置支持
@EnableConfigurationProperties开启对@ConfigurationProperties注解配置Bean的支持
@EnableJpaRepositories开启对SpringData JPA Repository的支持
@EnableTransactionManagement开启注解式事务的支持
@EnableCaching开启注解式的缓存支持

(11)测试相关注解
@RunWith运行器,Spring中通用对JUnit的支持
@ContextConfiguration用来配置ApplicationContext,其中classes属性用来加载配置类
(12)全局异常处理注解
@ControllerAdvice
@ExceptionHandler
(13)JPA相关注解
@EnableJpaRepositories
@Entity
@Table
@Id
@GeneratedValue
@Column
@ColumnComment
@Transient
@Temporal
@Enumerated
@Embedded、@Embeddable
@ElementCollection
@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy
@MappedSuperClass
@NoRepositoryBean
@SequenceGeneretor
@JoinColumn
@OneToOne、@OneToMany、@ManyToOne
@PostLoad
@PrePersist和@PostPersist
@PreUpdate和@PostUpdate
@PreRemove和@PostRemove
@EnableJpaAuditing
(14)Mybatis相关注解
@Mapper
@MapperScan
@Param
@Insert、@Select、@Update、@Delete
@Results
@Result
@One
(15)JSON转化相关注解
@JsonIgnoreProperties
@JsonIgnore
@JsonFormat
@JsonSerialize
@JsonDeserialize
@JsonProperty

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值