1

springboot

springboot优点:

  1. 快速创建独立运行的spring项目以及主流框架集成
  2. 使用嵌入式servlet容器,应用无需打包war包
  3. starters自动依赖控制版本
  4. 大佬自动配置,简化开发,也可修改默认值
  5. 无需配置xml,无代码生成,开箱即用
  6. 准生产环境的运行时应用监控
  7. 与云计算的天然集成
  • 一、springboot入门
  1. springboot简介
    1. 简化spring应用开发的一个框架
    2. 整合spring技术栈的大整合
    3. j2EE开发的一站式解决方案
  2. 微服务---一种架构风格
    1. 一个应用应该是一种小型服务,可以通过http的方式进行互通
    2. 每一个功能元素最终都是一个可独立替换和独立升级的软件
  3. jdk 1.8 javaversion 1.8.0_112
  4. maven3.3以上版本:Apache Maven 3.39
  5. IDEA2017
  6. springboot 1.5.9.Release:1.5.9统一环境
  • 二、操作
    •   设置maven
      •   设置setting
  1.   spring boot HelloWorld
    1.   一个功能
    2. 浏览器发送hello请求,服务器接受请求并处理,响应HelloWorld字符串;
      1. 创建一个maven工程;(jar)
      2. 导入springboot相关依赖
      3.  <parent>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>1.5.3.RELEASE</version>
            </parent>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </dependency>
            </dependencies>
        
      4. 编写一个主程序:启动springboot应用
      5. 编写相关的Controller,Service
      6. 运行主程序测试
      7. 简化部署 ----创建一个可执行jar
         <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
         
                        <executions>
                            <execution>
                              <goals>
                                <goal>repackage</goal>
                              </goals>
                            </execution>
                          </executions>
                    </plugin>
                </plugins>
            </build>
        

         双击package,打包,会在下面生成一个目录,里面是一个jar,可以拖到桌面,命令行执行jar,也可以运行

  • 三、Hello World探究
  1. POM文件
    1.   父项目
       <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>1.5.3.RELEASE</version>
          </parent>

      他的父项目:
      <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>1.5.3.RELEASE</version>
      <relativePath>../../spring-boot-dependencies</relativePath>
      </parent>
      他真正管理springboot应用里面的所有依赖版本

        springBoot的版本仲裁中心;以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然要声明版本号)

    2. 导入的依赖
       <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
      
      spring-boot-starter-web
      1. spring-boot-starter:spring-boot场景启动器;帮我们导入web模块正常运行所依赖的组件;
      2. springboot将所有功能场景都抽取出来,做成一个个的starts(启动器),只需要在项目里面引入这些starter相关场景的所有依赖都会导入进来,要用什么功能,就导入什么场景启动器
  2. 主程序类,主入口类
    /**
     * @SpringBootApplication来标注一个主程序,说明这是一个springboot应用
     */
    @SpringBootApplication
    public class HelloWorldMainApplication {
        public static void main(String[] args) {
            //spring应用启动起来
            SpringApplication.run(HelloWorldMainApplication.class,args);
        }
    }
    
    @SpringBootApplication   springboot应用标注在某个类上,说明这个类是springboot的主配置类,springboot就应该运行这个类的main方法来启动springboot应用;
    @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}
    )}
    )
    
    @SpringBootConfiguration  springboot的配置类  标注在某个类上,表示这是一个springboot的配置类
      • @Configuration :配置类上标注这个注解
      • 配置类---配置文件    配置类也是容器中的一个组件 @Component

               

@EnableAutoConfiguration  :开启自动配置功能;  以前需要配置的东西,springboot帮我们配置,
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.class})

  

@AutoConfigurationPackage 自动配置包
  
@Import({EnableAutoConfigurationImportSelector.class})   ---springboot底层注解,给容器中导入一个组件,由括号里决定导入什么,,   将主配置类所在包以及子包扫码到spring容器
posted @ 2020-11-19 10:24  Auroragaga  阅读(75)  评论(0编辑  收藏  举报