初学SpringBoot

2021-03-18 06:24

阅读:638

标签:项目   repos   conf   select   其他   根据   highlight   factor   nts   

1什么是springboot?

1.概念:

        Spring Boot是由Pivotal团队提供的全新框架,属于spring旗下的一个项目,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,它使用“习惯优于配置”的理念,从而使开发人员不再需要定义样板化的配置。使用springboot很容易创建一个独立运行的spring项目,并且可以几乎不使用spring配置或者使用很少的配置。

2、结构和使用:

   springboot和普通的javase项目相似,一个普通的maven项目添加它的依赖就行。spring提供很多的start pom简化maven的依赖加载,一般会配置一个parent依赖,控制整个springboot的版本,如果是web项目,配置一个spring-boot-start-web依赖,会自动关联一些常用的web依赖,比如springmvc、servlet甚至它会嵌入一个tomcat容器,因此无需再tomcat服务器中进行发布。  springboot会自动扫描src/main/resources文件夹下的配置,一般是一个properties(application.properties)或者yaml文件,里面配置一些少量的必要的应用配置,例如数据库连接信息、服务器名称端口号之类的信息。

  编写springboot的入口类,一般命名是xxxApplication.java,其他的类都在它所在的目录或者子目录中,这样spring容器会自动扫描有相应注解的类。入口类上的注解是SpringBootApplicaton,类中有个Main方法作为程序入口,springboot框架提供一个方法启动项目Application.run(本类名.class,args)。一直运行就启动springboot项目。

  以上两步就是最基本的配置,并且是一个呈现一个基本的springboot雏形。

3、springboot运行原理:

  入口注解@SpringBootApplication注解是一个组合注解,

  它包含@configuration、@EnableAutoConfiguration和@componentScan三个注解组成。

  它的核心是@EnableAutoConfiguration注解。这个注解中有一个@Import注解,它导入配置功能EnableAutoConfigurationImportSelector,这个类有个方法扫描具有/META-INF/spring.factories文件的jar。

  spring.factories中声明了那些自动配置。然后我们在application.properties文件中进行相应的配置,比如数据库连接,使springboot中的自动配置中的参数是我们需要的配置。

2为什么使用Springboot?(Springboot有哪些优点?)

    (1)能够快速创建独立运行的Spring项目与主流框架集成       (独立运行)

    (2)使用嵌入式的servlet容器,应用无需打包成war包            (上手容易)

    (3)starters自动依赖与版本控制                                             (自动配置)

    (4)大量的自动配置,简化开发,也可修改默认值                  (简化配置)

    (5)准生产环境的运行应用监控                                              (应用监控)

    (6)与云计算的天然集成                                                         (无代码生成和XML配置)

  独立运行  , 无需部署war文件  , 自动配置 , 简化配置 , 应用监控,  无代码生成和XML配置 

3Springboot的核心配置文件有哪几个?他们的区别是什么?

   Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

      1.application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。

      2.bootstrap 配置文件有以下几个应用场景。

      1. 使用SpringCloudConfig配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
      2. 一些固定的不能被覆盖的属性;
      3. 一些加密/解密的场景;

4、Springboot 的配置文件有哪几种格式?他们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不同。

(1).properties

 技术图片

(2).yml
技术图片
 
另外,.yml 格式不支持 @PropertySource 注解导入配置。

5Springboot的核心注解是哪个?它主要由哪几个注解组成

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

  1、@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
  2、@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,
如关闭数据源自动配置功能:@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
  3、@ComponentScan:Spring组件扫描。

6、开启 Spring Boot 特性有哪几种方式?

  1)继承spring-boot-starter-parent项目
  2)导入spring-boot-dependencies项目依赖

7、Spring Boot 需要独立的容器运行吗?

  可以不需要,内置了 Tomcat/ Jetty 等容器。

8、我们能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?

     在 spring-boot-starter-web 移除现有的依赖项,并把下面这些添加进去。

 1  2     org.springframework.boot 3     spring-boot-starter-web
 4      5          6             org.springframework.boot 7             spring-boot-starter-tomcat
 8          9     10 11 12     org.springframework.boot13     spring-boot-starter-jetty
14 

9、运行 Spring Boot 有哪几种方式?

1)打包用命令或者放到docker容器中运行
2)用 Maven/ Gradle 插件运行
3)直接执行 main 方法运行

10、Spring Boot 自动配置原理是什么?

注解@EnableAutoConfiguration,@Configuration,@ConditionalOnClass就是自动配置的核心,首先它是一个配置文件,其次根据类路径下是否有这个类自动去配置。

11、Spring Boot 的目录结构是怎样的?

 1 cn
 2  +- javastack
 3      +- MyApplication.java
 4      |
 5      +- customer
 6      |   +- Customer.java
 7      |   +- CustomerController.java
 8      |   +- CustomerService.java
 9      |   +- CustomerRepository.java
10      |
11      +- order
12          +- Order.java
13          +- OrderController.java
14          +- OrderService.java
15          +- OrderRepository.java
这个目录结构是主流及推荐的做法,而在主入口类上加上 @SpringBootApplication 注解来开启 Spring Boot 的各项能力,如自动配置、组件扫描等。。

  

初学SpringBoot

标签:项目   repos   conf   select   其他   根据   highlight   factor   nts   

原文地址:https://www.cnblogs.com/yanzhong/p/13955522.html


评论


亲,登录后才可以留言!