java path 注解_Java项目常用注解总结

@Autowired :默认按类型装配,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

@Resource :它的作用相当于 @Autowired,只不过** @Autowired 按 byType** 自动注入,面**@Resource 默认按 byName **自动注入,当找不到与名称匹配的bean才会按类型装配

@Controller:用于标注控制层组件。

@Service:用于标注业务层组件。

@Repository:标注一个DAO组件类。

@component: (把普通pojo实例化到spring容器中,相当于配置文件中的

)

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

@Autowired + @Qualifier

获取bean,等于@Resource

1.2 SpringBoot相关注解

@SpringBootApplication

包含@Configuration、@EnableAutoConfiguration、@ComponentScan

通常用在启动类上。

@ComponentScan

组件扫描。如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean。

@Configuration

指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上。

@EnableAutoConfiguration

让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。

@Slf4j

在类上添加@Slf4j注解,在方法中直接使用log。

@ImportResource

通过locations属性加载对应的xml配置文件,同时需要配合@Configuration注解一起使用,定义为配置类

@EnableScheduling

定时任务注解。

@EnableDiscoveryClient

基于spring-cloud-commons,并且在classpath中实现。

@EnableEurekaClient

基于spring-cloud-netflix,只能为eureka作用。

就是如果选用的注册中心是eureka推荐@EnableEurekaClient,如果是其他的注册中心推荐使用@EnableDiscoveryClient,如果classpath中添加了eureka,则它们的作用是一样的。

@PropertySource

可以知道@Value和@ConfigurationProperties都可以用于获取配置文件的属性值,不过有个细节容易被忽略,那就是,这两个注解在Springboot项目中都是获取默认配置文件的属性值,也就是application.yml或者application.properties的属性值

不过我们想要配属性的话,肯定都不能全都往默认配置文件里堆的,如果想引用其它配置文件的属性值,就可以使用本博客介绍的@PropertySource注解

@EnableEncryptableProperties

用于加密

@EnableTransactionManagement

Spring Boot 使用事务非常简单,首先使用注解 @EnableTransactionManagement 开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 便可。

关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager 如果你添加的是 spring-boot-starter-jdbc 依赖,框架会默认注入 DataSourceTransactionManager 实例。如果你添加的是 spring-boot-starter-data-jpa 依赖,框架会默认注入 JpaTransactionManager 实例。

1.3 SpringMVC相关注解

@EnableWebMvc

在配置类中开启Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若无此句,重写WebMvcConfigurerAdapter方法(用于对SpringMVC的配置)。

@Controller

声明该类为SpringMVC中的Controller

@RequestMapping

用于映射Web请求,包括访问路径和参数(该注解贴在类或方法上)

@ResponseBody

支持将返回值放在response内,而不是一个页面,通常用户返回json数据(该注解贴在返回值旁或方法上)

@RequestBody

允许request的参数在request体中,而不是在直接连接在地址后面。(放在形参前)

@PathVariable

用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController

该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

1.4 面向切面相关

@Aspect

面向切面编程注解,Spring AOP 中用来自定义切面

@Before

方法前执行

@After

方法后执行

@Around

环绕执行

@Scheduled

执行计划

1.5 Dubbo相关常用注解

@Service

表示提供者

@Reference

表示消费者

@EnableDubbo

启用Dubbo整合配置

1.6 缓存

@Cacheable

最常用的一个,若缓存中没有对应键,则执行方法,并把返回值放入缓存,如果有则从缓存中取,不执行方法

@CacheEvict

删除缓存

@CachePut

修改缓存

@Caching

同时使用上面多个的时候使用

@CacheConfig

放在类上统一类中的其它缓存注解,如下相当于在这个类中的其它所有缓存注解都被默认加上了cacheNames = "",cacheManager = ""

1.7 @Value

使用@Value可以为属性字段赋值

1、基本数值

2、可以写SpEL; #{}

3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)

配置类

使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;

加载完外部的配置文件以后使用${}取出配置文件的值

@PropertySource(value={"classpath:/person.properties"})

@Configuration

public class MainConfigOfPropertyValues {

@Bean

public Person person(){

return new Person();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值