1.项目创建
a. 通过新建窗口(Ctrl+N),搜索spring选择spring starter 项目。
service URL:(http://start.spring.io 或 http://aliyun.com)
b. 先创建一个普通的maven项目,从之前创建的spring starter 项目中复制pom.xml文件替换maven项目的pom.xml文件
c. 通过http://start.spring.io 或 http://aliyun.com线上创建项目...,再导入到STS软件中
2.项目启动过程分析
SpringBoot项目启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描指定包以及子包中的类进行加载,然后检测类上是否有Spring框架中指定的注解描述。将有指定注解描述的类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean的实例,假如此Bean指定了生命周期方法,还会调用生命周期方法。当实例创建以后,Spring框架还会基于类的作用域描述,将实例存储到不同作用域的容器中。以实现Bean对象的科学应用。
3.项目业务初步实现及测试
a. 在启动类的所在包或子包中创建一个DefaultCache类,交给spring管理
b. 在src/test/java目录下添加SpringBoot测试类,进行bean的获取及测试
c. 为对象设计作用域,设置延迟加载,设置生命周期方法
d. 通过测试类测试作用域,延迟加载,生命周期方法
4.相关注解
- @SpringBootApplication 标记此类为SpringBoot启动类; 此注解为一个复合注解,包括@Configuration、@SpringBootConfiguration和@EnableAutoConfiguration
- @Autowired 用于告诉Spring框架为这个属性注入一个值
- @Component 最普通的组件,被修饰的类会被注入到spring容器进行管理
@Scope 是springIoc容器中的一个作用域,常用的value属性为singleton(单例)和prototype(多例)默认是singleton
- singleton(单例作用域)被此注解修饰的类的实例在一个spring容器中只有一份。适用于该类对象会被频繁使用且不用考虑线程安全问题时,创建的对象随容器的销毁而销毁
- prototype(多例作用域)每次从spring容器中获取时都会创建新的实例。适用于该类对象应用次数少时
- @Lazy 此注解告诉spring框架,他描述的类的实例,假如暂时用不到,就不会创建(默认true)对象
- @PostConstruct 此注解描述的方法在对象构建以后执行,用于执行一些初始化操作
- @PreDestroy 此注解描述的方法会在单例对象销毁前执行,spring容器在销毁之前会先将容器(Bean池)中的对象进行移除,在移除对象时,假如对象中定义了生命周期销毁方法,此时还会调用对象的生命周期销毁方法(在这样的方法中可以做一些资源释放操作)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。