SpringBoot初学杂记(一)

本文深入探讨Spring Boot的关键特性,包括spring-boot-starter-parent的作用、@SpringBootApplication的组成及功能、@ConfigurationProperties的配置绑定机制,以及@Autowired与@Resource的区别。适合初学者和开发者加深对Spring Boot框架的理解。

    此博客用来记录学习过程中感到疑惑的地方,逐一写下来方便记忆,可能包含一些低级问题,标签的用法之类的

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注解一起来修饰。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值