项目结构的创建以及分析

秉承着使用快捷从而提升工作效率创建项目有ctrl+n创建

image8.png
src/main/java
com.cy 包的class下为运行入口,项目的启动类
并且要运行的项目类必须要放到当前包下

src/main/resources目录下
application.properties是默认配置文件
放置配置文件以及一些静态资源

src/test/java
com.cy包下class为单元测试入口
并且要测试的单元测试必须放到此包下

从项目创建开始String Boot将会自动从maven配置的文件里的私服服务器去下载所有需要的所有jar包并配置,因此需要时间可能会长并且会出现连接超时等情情况,如果需要也可以创建maven普通项目进行配置或者在String
Boot 官方创建并导入到String Boot中

SpringBoot工厂启动过程分析

1.通过线程调用相关API从指定路径查找相关的配置文件,class文件
2.调用IO对象从磁盘中读取文件(将文件内容读取到内存)
3.检测类是否有特定注解描述(通过注解自动分配是业务层,表现层,持久层,单元测试等)
4.String框架基于工厂对象(BeanFactory)为指定class创建其实例对象,
并基于配置描述对这些对象进行初始化操作
5.将对象存储到Spring框架Bean池中(Bean池-其底层设计在这里是一个map)

项目启动过程分析

在项目启动时,找到项目的入口类(使用@SpringBootApplication注解描述),然后启动运行启动类,基于启动入口类上的注解描述,进行自动扫描以及指定包和子包下中的类进行加载,然后检查类上是否有spring框架特有的注解描述,如果有
将此类交给spring框架中BeanFactory工厂接口的实现类对象,此工厂对象
会基于反射创建Bean实例,如果指定了生命周期方法,还会调用生命周期方法
,当实例创建以后,Spring框架还会基于类的作用域描述,将类分配在不同的作用域容器中,以实现Bean对象的科学应用

项目注解描述

package com.cy.pj.common.cache;
@Component

public class DefaultCache {}
@Component注解是Spring时用来描述Bean类的一个注解,告诉Spring框架这个实例由String来创建,默认存储到Bean池中
package com.cy.pj.common.cache;
@SpringBootTest
public class DefaultCacheTests {
@Autowired
private DefaultCache defaultCache;
@Test
public void testCache() {
System.out.println(defaultCache);
}
}
@SpringBootTest注解用于告诉Spring框架这个测试类由spring管理
@Autowired描述属性时,搞事Spring框架为此属性注入值