【SprintBoot笔记】Day1

Bean

端口配置



获取Bean

        Spring项目启动时,默认情况下会自动创建IOC容器,也称Spring容器,并且在启动的过程中会自动将Bean对象都创建好,放在IOC容器中,应用程序在运行时需要依赖什么Bean对象,就直接进行依赖注入;   也可以通过几种方式主动获取Bean

声明一个Bean对象没有指定名称,默认首字母小写

运行发现,三次获取的Bean对象的地址都一致,这是因为在Spring容器中,Bean对象默认是单例的,只有一个实例对象,而声名的Bean对象是单例还是多例是取决于Bean的作用域的

默认Bean的初始化时机是容器启动时,在该类前加上@Lazy注解可以延迟初始化至第一次使用时

加上@Scope("prototype")注解后,每次使用该bean时都会创建一个新的实例



第三方Bean

如:



SpringBoot原理

sprintboot的原理其实就是起步依赖自动配置的原理

起步依赖只需要引入 spring-boot-starter-web 这一个依赖,其他的依赖都会通过maven的依赖传递传递过来(例如A依赖B,B依赖C,引入A就引入了ABC)

自动配置就是当spring容器启动后,一些配置类、bean对象就自动存到了IOC容器中,不需要手动声明,从而简化了开发,省去了繁琐的配置操作

@SpringBootApplication具有包扫描的作用,扫描当前包及其子包
对于第三方包的引入方法:
1、@ComponentScan({"包名"},{"包名"}........)   指定要扫描的包    问题:使用繁琐,性能低
2、@Import导入。使用@Import导入的类会被Spring加载到IOC容器中

3、@EnableXXXX注解,封装@Import注解

源码追踪

@SpringBootApplication中封装了@SpringBootConfiguration(声明当前类是配置类),@ComponentScan(自动包扫描),

@EnableAutofiguration(自动配置的核心注解):它的底层封装了一个@Import注解,该注解中指定ImportSelector接口的实现类,该实现类实现这个接口中的String[] selectImport(...)方法,在这个方法中返回要导入到Spring IOC容器的类的全类名,在这个方法中加载了2个文件:spring.factories(在SpringBoot 3.X版本后,spring.factories文件被彻底移除)和AutoConfiguration.imports(该文件中定义的是配置类的全类名),在spring boot项目启动时,会加载该配置文件中的配置类,然后将配置类中的信息封装到String类型的数组中,最终通过Import注解将这些配置类全部加载到Spring IOC容器中交给IOC容器管理        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值