springboot学习一:自动注入

学习资料下载:springboot学习笔记.zip-Java代码类资源-CSDN下载

run方法主要作用是刷新

@SpringBootApplication:spring boot的主配置类

该注解包含:

一、@SpringBootConfiguration (springboot的配置)

包含@Configuration,表示“配置类”:

1.该类是一个配置类

2.加了@Configuration注解的类,会自动纳入Spring容器  (@Component)

@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

@Configuration

public class A//表示A是一个 用于 配置的类

{

}

二、@ComponentScan (扫描项目的包并注入)

扫描项目中的service和controller,并注入

三、@EnableAutoConfiguration

1.@AutoConfigurationPackage //注入service controller

	@Autowired
	BeanFactory beanFactory;

    @Test
	void TestAutoConfigurationPackage() {
		List<String> list = AutoConfigurationPackages.get(beanFactory);
		list.forEach(p -> System.out.println(p));
	}

@SpringBootApplication@EnableAutoConfiguration@AutoConfigurationPackage@Import(AutoConfigurationPackages.Registrar.class)registerBeanDefinitions方法

作用:就会将该包及所有的子包 全部纳入spring容器,spring boot在启动时,会根据META-INF/spring.factories找到相应的三方依赖,并将这些依赖引入本项目

2.@Import(AutoConfigurationImportSelector.class) //注入第三方jar包

使spring boot可以自动配置:可以找到@SpringBootApplication所在类的jar包 ,

总结:

编写项目时,一般会 对自己写的代码  以及 三方依赖 进行配置。但是spring boot可以自动进行配置:

  a:自己写的代码,spring boot通过@SpringBootConfiguration自动帮我们配置;

  b. 三方依赖 通过spring-boot-autoconfigure-2.0.3.RELEASE.jar中

     的META-INF/spring.factories进行声明,然后通过@EnableAutoConfiguration的@Import(AutoConfigurationImportSelector.class)开启使用即可

spring-boot-autoconfigure-2.0.3.RELEASE.jar包中 包含了 J2EE整合体系中 需要的依赖。

 c.如何自动装配

研究org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration,\

通过观察该源码 发现:

@Configuration:标识此类是一个配置类  、将此类纳入spring ioc容器

@EnableConfigurationProperties(HttpEncodingProperties.class): 通过HttpEncodingProperties将编码设置为了UTF_8 (即自动装配为UTF_8, 如何修改改编码:通过改HttpEncodingProperties的 predfix+属性名 进行修改 [配置文件中,yml/properties])

   即:该注解给了默认编码utf8,并且提供了prefix+属性名 的方式 供我们修改编码。

@ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing = true)

当属性满足要求时,此条件成立  :要求 如果没有配置spring.http.encoding.enabled=xxx, 则成立。

总结:1每一个XxAutoConfiguration 都有很多条件@ConditionalOnXxx,当这些条件都满足时,

则此配置自动装配生效(utf-8)。但是我们可以手工修改改 自动装配: XxxProperties文件中的  

prefix.属性名=value

        2全局配置文件中的key, 来源于某个Properties文件中的 prefix+属性名

--boot通过XxAutoConfiguration实现自动装配 ,修改默认值 XxxProperties( prefix+属性名)

     

如何知道 spring boot开启了哪些自动装配、禁止了哪些自动装配: application.properties中 debug=true

控制台说明:

Positive matches列表 表示 spring boot自动开启的装配

Negative matches列表 表示spring boot在此时 并没有启用的自动装配。

自己写的

引入三方依赖(jar、配置)

视频教程(DT课堂):Spring Boot视频教程(入门篇)-学习视频教程-腾讯课堂

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值