此文章为个人学习记录,若有错误欢迎提出。
1、SpringBoot使用优点:
①快速创建独立运行的Spring项目以及与主流框架集成。
②使用嵌入式的Servlet容器,应用无需打成war包
③starters自动依赖与版本控制。
④大量的自动配置,简化开发,也可对默认值进行修改。
⑤无需配置XML,无代码生成,开箱即用。
⑥若需要将打好jar包的程序运行,可使用cmd命令窗口并使用命令:java -jar [jar包名].jar运行。
2、Spring-boot-starter-web
Spring-boot-starter-web是SpringBoot场景启动器;帮助开发人员导入了web模块正常运行所依赖的组件。SpringBoot将所有的功能场景都抽取出来,做成一个个的starter(启动器),只需要哦在项目里引入这些starter,相关场景的所有依赖都会导入进来。
3、SpringBoot部分注解以及自动配置
①@SpringBootConfiguration:SpringBoot的配置类;标注在某个类上,表示这是一个配置类;底层为@configuration:配置类上标注这个注解;配置类相当于配置文件;配置类也是容器中的一个组件(@component)
②@EnableAutoConfiguration:开启自动配置功能;以前需要开发人员自己配置的东西,SpringBoot会帮助进行自动配置;配置了之后自动配置才能生效。
③@AutoConfigurationPackage:自动配置包。
④@Import(AutoConfigurationPackages.Registar.class):Spring底层注解@Import,给容器中导入一个组件,导入的组件由AutoConfigurationPackages.Registar.class,将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器。与自动配置包写在一起的@Import(EnableAutoConfigurationImportSelector.class)括号内写的是导入哪些组件的选择器;将所有需要导入的组件以全类名的方式返回(String字符串);这些组件就会被添加到容器中;会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件。有了自动配置类,免去了开发人员手动编写配置注入功能组件等的工作。
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class, classLoader)SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮开发人员进行自动配置;以前需要开发人员自己配置的东西,自动配置类都会帮助配置。
⑤在实体类的上方增加注解@ConfigurationProperties 告知SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定,重新运行后就可以使用(并要增加pom文件中的依赖包,还要将其加到容器中才能使用@Component)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
⑥如果说,我们只需要获取配置文件中的某项值,则可以使用@Value注解;如果我们专门编写了一个JavaBean来和配置文件进行映射,我们就可以直接使用@ConfigurationProperties(prefix=“实体类名”) (默认从全局配置文件获取值)。
⑦@PropertySource(value={“classpath:person.properties”}) :加载指定路径下的配置文件(可加载多个)
⑧@ImportResource :导入Spring的配置文件,让配置文件里面的内容生效。
⑨@ImportResource(location={“classpath:beans.xml”}) :SpringBoot推荐给容器中添加组件的方式;推荐使用全注解的方式,并指明配置类@Configuration 用来代替之前的Spring配置文件。例:用@Bean代替将方法的返回值添加到容器中:容器中此组件默认id为方法名。