关于springboot:SpringBoot学习总结

微服务

简化部署

配置依赖:

<build>
 <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>

将这个利用打包成jar包,能够间接应用java -jar 命令运行。 ##POM文件

父我的项目

<parent>
 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> </parent>
下面的父我的项目是
<parent>
 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.4.RELEASE</version></parent>
它来治理SpringBoot利用里的所有依赖版本

启动器

<dependency>
 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>

spring-boot-starter-web: spring-boot-starter是springboot的场景启动器,帮咱们导入web依赖。
SpringBoot将所有的性能场景都一个个的抽取进去,成为starts(启动器),只须要在我的项目总引入这些start,相干性能场景的所以依赖都会打入进来。

主启动类,主入口类

@SpringBootApplication
public class SpringbootDemo1Application {
 public static void main(String[] args) { SpringApplication.run(SpringbootDemo1Application.class, args); }
}

@SpringBootApplication:此注解标注的类,就是SpringBoot的主配置类,SpringBoot就是通过这个类的main办法启动利用。

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
 excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}), @Filter(
 type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})}
)
public @interface SpringBootApplication {
  • @SpringBootConfiguration:SpringBoot的配置类

    • @Configuration: 标注的类为配置类

      • @Component:
  • @EnableAutoConfiguration:开启主动配置性能

    • @AutoConfigurationPackage:主动配置包
    • @Import({AutoConfigurationImportSelector.class})
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {

将主配置类所在包下及子包下里的说有组件扫描到spring容器

AutoConfigurationImportSelector 导入哪些组件的选择器

SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
SpringBoot在启动的时候从类门路下的META-INF/spring.factories中获取AutoConfiguration指定的值,将这些值作为主动拆卸类导入到容器中,主动拆卸类就失效

@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理