SpringBoot 学习笔记02—常用注解和自动装配

1. Spring 常用注解

1.1 自动装配

1.1.1 @Configuration

Spring 3.0之后开始支持了一种更优的配置方式:基于 Java 类的配置方式。通过增加 @Configuration 注解表明这是一个配置类,其底层为 @Component即该类的bean对象也会被Spring容器接管)。

proxybeanMethods 属性作用:指定被@Bean注解修饰的方法是否被代理,true表示该方法被代理(底层cglib,即该方法不能为private、final修饰),每次对该方法进行调用将会直接获得容器中的bean对象,而非真正执行该方法;false表示该方法不被代理,每次调用时都将获得一个新的对象(对应 full 和 lite 模式)。

1.1.2 @Bean

配合 @Configuration 可以实现 XML 配置实现注入的功能,效果与

<beans>
	<bean>...</bean>
    <bean>...</bean>
</beans>

类似,在使用 @Bean 注解时,表示将该方法返回的对象加载进 Spring 容器,在使用 @Bean 修饰方法时需要注意:

  1. 方法带返回值,且返回类型为想要被管理的 bean 的类型;
  2. 方法名即为默认的 bean name ,可使用 @Beanname 属性自定义;
  3. 方法可带参数,则此时传入的参数也必须是被 Spring 容器管理的 bean 。

1.1.3 @Value

该注解的作用是从配置文件中读取属性,如 application.yaml 中有个配置

server:
	port: 8000

我们使用该注解修饰方法参数 public void test(@Value("${server.port}") address),则该属性 8000 会自动被注入到 address 变量中。

@Value 定位属性有两种方式:

  • ${property: default_value}:读取配置文件(如 *.properties, *.yaml 中的值

  • #{obj.property?: default_value}:读取容器中管理的 bean 对象的属性值。

假设有一个对象声明如下:

@Component
public class ServerProperty {
   
@Value("${server.url}")
private String url;

// getter and setter
// ...
}

@Component
public class Server {
   
	@Value("#{serverProperty.url}")
	private String url;
}

第一个 @Value 指代从配置文件中读取属性注入到名为 serverProperty 的 bean 对象中,而第二个 @Value 则是从名为 serverPro

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值