1
1.项目创建

a. 通过新建窗口(Ctrl+N),搜索spring选择spring starter 项目。
service URL:(http://start.spring.iohttp://aliyun.com)
b. 先创建一个普通的maven项目,从之前创建的spring starter 项目中复制pom.xml文件替换maven项目的pom.xml文件
c. 通过http://start.spring.iohttp://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池)中的对象进行移除,在移除对象时,假如对象中定义了生命周期销毁方法,此时还会调用对象的生命周期销毁方法(在这样的方法中可以做一些资源释放操作)。

麦田里的守望者
10 声望3 粉丝

永远相信美好的事情即将发生


下一篇 »
SpringBoot-Day02