乐趣区

关于springboot:SpringBoot为Bean赋予的特点day02

1.1 利用场景
1.2 外围特色

起步依赖(Starter Dependency)- 我的项目创立时底层帮你关联依赖。
主动配置(Auto Configuration)。
健康检查(Actator)- 监控。

1.3Maven 的配置
1.4 我的项目构造剖析(上一篇)
1.5 我的项目的启动类
2.1 如何判断对象什么时候创立(日志, 断点)
2.2SpringBoot 和 Spring 的关系

– 什么是 Spring
Spring 框架为开发 Java 应用程序提供了全面的基础架构反对。它蕴含一些很好的性能,如依赖注入和开箱即用的模块,如:
Spring JDBC、Spring MVC、Spring Security、Spring AOP、Spring ORM、Spring Test 这些模块缩短应用程序的开发工夫,进步了利用开发的效率
– 什么是 Spring Boot
Spring Boot 基本上是 Spring 框架的扩大,它打消了设置 Spring 应用程序所需的 XML 配置,为更快,更高效的开发生态系统铺平了路线

2.3 为什么要应用 springBoot

2.3.1@Lazy– 提供提早加载的办法, 节俭资源

* 提早加载的利用场景
应用多个对象或者大数据结构时,一种晋升其性能的形式是使用提早加载或赋值(来实现)。将费时的操作尽可能的缩短的想法,从未实现。节俭内存资源
* 单元测试办法的利用场景
 不能用在 private 下.
 容许抛出异样
 不容许有返回值
 不能有参数列表

Spring 是一个资源整合框架(Framework), 通过 spring 可将很多资源 (本人写的对象或第三方提供的对象,例如连接池等) 整合在一起, 而后进行迷信利用,以便更好的对外提供服务。

Spring 框架能够为由它治理的对象(Bean)提供懒加载策略(对象临时用不到,则无需加载和实例化),作用域(例如 singleton- 频繁用时能够思考内存中只有一份,prototype- 应用次数少时能够用时创立,不必时销毁),生命周期办法(更好实现对象的初始化和资源销毁),以实现对象对系统资源的无效应用。同时 Spring 框架还能够基于用户设计治理对象与对象的依赖关系,以升高对象与对象之间的间接耦合,进步程序的可维护性和可扩展性。

Bean 对象的注解

@Component 只能形容类, 标注一个类为 Spring 容器的 Bean(默认为类名首字母小写, 如果对应的启动类加 @Bean 标注, 则会定义两次 Bean 名字, 从而报错)相当于候选类

@Scope 是 Spring 中用于定义 Bean 对象作用域的一个注解,
其罕用的值有:
singleton(整个内存有一份 Bean 实例, 此实例何时创立与类的提早加载个性配置无关,此实例创立当前,生命周期会由 spring 框架治理),
prototype(每次获取都会创立新实例,此实例会在须要时创立与 lazy 个性无关,这个实例创立当前,不会交给 spring 治理,spring 能够对其初始化,但不负责销毁。不在 Bean 池里)等。

@Lazy 注解用于形容类, 其目标是通知 spring 框架此类反对提早加载,通常会配合单例作用域应用。
其参数为 true(默认)和 false(无意义)

@PostConstruct 注解用于形容 bean 对象生命周期办法中的初始化办法,此办法会在对象的构造方法之后执行。

@PreDestroy 注解用于形容 Bean 对象生命周期办法中的销毁方 (多例作用域(prototype) 时不执行, 因为不在 Bean 池中)

测试类的注解

@SpringBootTest 示意一个 SpringBoot 测试类

启动类的注解

@Bean
个别用于第三方资源的注入

@Scope

@Lazy

**

@Autowired 注解利用规定

(一个时间接注入, 多个时须要指定)

@Qualifier 注解的作用

(配合 @Autowired 应用, 只能形容参数属性)

@Autowired 由 spring 框架定义,用于形容类中属性或相干办法(例如构造方法)。Spring 框架在我的项目运行时如果发现由他治理的 Bean 对象中有应用 @Autowired 注解形容的属性或办法,能够依照指定规定为属性赋值(DI)。其根本规定是:首先要检测容器中是否有与属性或办法参数类型相匹配的对象,如果有并且只有一个则间接注入。其次,如果检测到有多个,还会依照 @Autowired 形容的属性或办法参数名查找是否有名字匹配的对象,有则间接注入,没有则抛出异样。最初,如果咱们有明确要求,必须要注入类型为指定类型,名字为指定名字的对象还能够应用 @Qualifier 注解对其属性或参数进行形容(此注解必须配合 @Autowired 注解应用)。

退出移动版