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注解使用)。


李文肖
1 声望0 粉丝