此博客用来记录学习过程中感到疑惑的地方,逐一写下来方便记忆,可能包含一些低级问题,标签的用法之类的
1.为什么要使用spring-boot-starter-parent这个父级依赖?
spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。
详解:http://www.yayihouse.com/yayishuwu/chapter/1605
2.@SpringBootApplication
@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、 @EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
- 其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
- Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下
3.@ConfigurationProperties(prefix = "jdbc")
简单来说,这个注解是用来把配置文件的信息,读取并自动封装成实体类
@ConfigurationProperties(prefix = "jdbc")
@Data
public class Config {
private String driverClass;
private String url;
private String username;
private String password;
}
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/cms
username: root
password: root
prefix为配置文件里的前缀
注:@Data是Lomok的工具里的注解,用来自动生成get,set方法
还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了
4.@Autowired和@Resource的区别
1. @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
2.@Resource是Java自己的注解,@Resource有两个属性是比较重要的,分是name和type;Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
3.@Autowired是spring的注解,是spring2.5版本引入的,Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier或@Primary注解一起来修饰。
本文深入探讨Spring Boot的关键特性,包括spring-boot-starter-parent的作用、@SpringBootApplication的组成及功能、@ConfigurationProperties的配置绑定机制,以及@Autowired与@Resource的区别。适合初学者和开发者加深对Spring Boot框架的理解。

被折叠的 条评论
为什么被折叠?



