【Spring常用注解】

1、注解说明

(1)SpringBoot启动配置注解

注解注解说明
@SpringBootApplicationSpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,程序运行时应运行这个类的main方法来启动SpringBoot应用。
@SpringBootConfiguration标注在某个类上,表示这是一个SpringBoot的配置类。
@Configuration配置类上标注这个注解,表示该类是一个配置类(配置文件),配置类也是容器中的一个组件(@Componet)。
@EanbleAutoConfiguration开启自动配置功能,给容器中添加组件
@AutoConfigurationPackage自动配置包,将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器
@Import(xxxx.class)给容器中导入一个组件,导入的组件由xxx.class指定,将会给容器导入非常多的自动配置类(xxxAutoCnfiguraton):给容器中导入这个场景所需要的所有组件并配置好这些组件。

(2)Spring Boot配置相关注解

① YML和properties相关配置注解

注解注解说明
@ConfigurationProperties(prefix=‘xxx’)将配置文件中配置的每一个属性值映射到标注的组件中。prefix中的参数告诉配置文件中的xxx类下的所有属性进行一一映射(只有被注解的组件是容器中的才能被调用)
@Component将组件放在容器中,说明这个类被Spring管理了,就是Bean
@Value在某个对象上注入数据
@Validated支持JSR303进行配置文件值校验,允许类内添加相关校验注解
@PropertySource(value={“classpath:path”})加载指定的配置文件,value中的path填写的resources配置下的路径
@ImportResource(locations = {“classpath:path”})导入Spring的配置文件,让location中的path填写的resource配置文件里面的内容生效
@Configuration指明当前类是一个配置类,用于替代之前Spring的配置文件bean.xml
@Bean可以给容器添加组件,写在类中的方法上,将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名
  • 注:@Value获取值和@ConfigurationProperties获取值比较
    在这里插入图片描述

② 配置文件占位符

- 1 随机数
${random.value}、${random.int}、${random.long}
${random.int(10)}、${random.int[1024,65536]}
- 2 占位符获取之前配置的值,如果没有可以指定默认值。
//将person下的hello对象的值传给person下的dog对象,如果该对象没有对应的值,则默认person.dog为hello
person.dog=${person.hello:hello}

③ Profile 文件

  • 1、多Profile文件
    resources下的配置文件,文件名可以为application-{profile}.properties/yml,默认使用的是application.properties的配置。

  • 2、yml支持多文档块方式

server:
  port: 8081
spring:
  profiles:
    active: dev
---
server:
  port: 8083
spring:
  profiles: dev
---
server:
  port: 8084
spring:
  profiles: prod
  • 3、激活指定profile
    (1)在配置文件中指定spring.profiles.active=configName
    (2)命令行方式:
    在执行Jar包时,输入java -jar xxxx.jar --spring.profiles.activate=dev
    或者在配置时设置命令行参数点击Edit Configuration
    在这里插入图片描述
    进入配置界面,在Program arguments项上输入--spring.profiles.activate=dev
    在这里插入图片描述
    或者虚拟机参数-Dspring.profiles.active=dev
    在这里插入图片描述

(3)单元测试注解

注解注解说明
@SpringBootTest声明该类为SpringBoot的单元测试
@RunWith(SpringRunner.class)声明单元测试用SpringRunner驱动器去驱动
@Test放在测试方法上,实现不用通过main函数即可运行程序

(4)常用注解

注解注解说明
@Nullable字段标记了这个注解,说明这个字段可以为null。
@Autowired默认按照资源的类型(class)查找并注入。自动驻入,自动装配通过类型byType。通过byType的方式实现,而且必须要求这个对象存在。名字如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value=“xxx”)。
@Qualifier配合@Autowiredy一起使用,指定变量名作为id,让@Autowired在寻找到有多个相同类型的Bean时,选择具有唯一id的Bean来注入
@Resource默认按照资源的名称(name)查找并注入,自动装配默认通过名字byname,如果找不到名字,则通过byType实现。如果都找不到则报错。
@Repository代表Dao层,用于持久化层,数据库访问层,用来直接访问数据库。代表将某个类注册到Spring中,装配Bean
@Service代表Service层,用于服务层,处理业务逻辑。代表将某个类注册到Spring中,装配Bean
@Controller代表Controller层,用于呈现层(Spring-MVC),暴露给前端入口。代表将某个类注册到Spring中,装配Bean
@Aspect标注这个类是一个切面
@RequestMapping可用于类或方法上,用来处理请求地址映射的注解
@PathVariable路径变量,可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)
@ResponseBody将java对象转为json格式的数据,处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。一般主要是用来处理content-type:"application/json charset=utf-8"或者content-type:"application/xml charset=utf-8"两种请求数据,一般是异步请求用的比较多些
@RestController主要功能为@ResponseBody+@Controller
@RequstParam获取地址中?后面的参数,即是获取传送过来的参数
@PathVariable路径变量,即是获取链接路径上的变量

SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮助我们进行自动配置。

2、xml与注解

  • xml更加万能,适用于任何场合,维护简单方便
  • 注解在不是自己类的情况下使用不了,维护相对复杂
  • xml用来管理Bean,注解只负责完成属性的注入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辰阳星宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值