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

本文介绍了SpringBoot中常用的注解,包括@Configuration、@Bean、@Value、@ConfigurationProperties和@EnableAutoConfiguration等自动装配注解,以及@RequestMapping、@RequestBody等Web相关注解。同时,探讨了Spring Boot自动装配的原理,涉及条件装配、配置类导入和属性注入。
摘要由CSDN通过智能技术生成

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

Spring Boot是一种基于Spring框架的快速开发框架,它能够帮助开发者在短时间内快速搭建一个基于Spring的应用。下面是关于Spring Boot学习笔记。 1. Spring Boot的优势 - 简化配置:Spring Boot能够通过自动配置、约定大于配置、starter模块等方式简化配置。 - 集成多种技术:Spring Boot集成了多种技术,例如Spring Data、Spring Security、Thymeleaf等。 - 内嵌Web容器:Spring Boot内置了Tomcat、Jetty、Undertow等Web容器,可以让应用程序快速启动。 - 简化开发:Spring Boot提供了很多便利的工具和插件,例如Spring Boot CLI、Spring Boot Actuator等。 2. Spring Boot的基本结构 Spring Boot应用程序的基本结构包括以下部分: - src/main/javaJava源代码 - src/main/resources:资源文件 - src/test/java:测试源代码 - src/test/resources:测试资源文件 - pom.xml:Maven项目配置文件 3. Spring Boot注解 Spring Boot中常用的注解包括: - @SpringBootApplication:标记一个主程序类,表示这是一个Spring Boot应用程序。 - @RestController:标记一个类,表示这是一个控制器类。 - @RequestMapping:标记一个方法,表示请求的URL映射。 - @Autowired:表示自动装配Spring Boot会自动注入依赖。 - @Value:表示属性注入,可以通过application.properties文件读取配置信息。 4. Spring Boot的配置 Spring Boot的配置方式包括: - application.properties:在src/main/resources目录下创建application.properties文件,可以通过该文件设置应用程序的配置信息。 - application.yml:在src/main/resources目录下创建application.yml文件,可以通过该文件设置应用程序的配置信息。 - @ConfigurationProperties:可以通过该注解将配置文件中的属性注入到Java Bean中。 5. Spring Boot的测试 Spring Boot提供了很多测试工具和框架,例如: - @SpringBootTest:表示一个Spring Boot应用程序的集成测试。 - @RunWith:表示运行测试的类。 - MockMvc:可以模拟HTTP请求和响应,测试控制器。 - TestRestTemplate:可以测试RESTful Web服务。 6. Spring Boot的部署 Spring Boot的部署方式包括: - 打包成jar文件:可以通过Maven插件将Spring Boot应用程序打包成可执行的jar文件,然后通过java -jar命令启动应用程序。 - 打包成war文件:可以通过Maven插件将Spring Boot应用程序打包成war文件,然后将war文件部署到Web容器中运行。 - Docker容器化部署:可以将Spring Boot应用程序打包成Docker镜像,然后运行Docker容器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值