1 - Spring Boot入门基础

一、简介

1、概述
  • 简化Spring应用开发的一个框架;
  • 整个Spring技术栈的一个大整合;
  • J2EE开发的一站式解决方案
2、优点
  • 快速的创建独立运行的Spring项目以及与主流框架集成;
  • 使用嵌入式的Servlet容器,应用无需打成war包;
  • starters( 启动器)自动依赖与版本控制;
  • 大量的自动配置,简化开发,也可以修改默认值;
  • 无需配置xml,无代码生成,开箱即用;
  • 准生产环境的运行时应用监控;
  • 与云计算的天然集成;
3、微服务
  • 微服务:架构风格(服务微化)
  • 一个应用应该是一组小型服务,可以通过HTTP的方式进行互通;
  • 单体应用:ALLIN ONE,所有的东西都写在一个应用程序里面;
  • 单体应用优点:开发、测试、扩展简单;
  • 微服务:每一个功能元素最终都是一个可以独立替换和独立升级的软件单元;
4、Spring Boot的项目创建
  • 创建一个maven工程(jar)
  • 导入spring boot相关的依赖
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
  • 编写一个主程序,启动Spring Boot应用

    注:Application启动类要放在最外侧,即包含所有子包,或者controller包中

    /**
     * @SpringBootApplication来标注一个主程序类,说明这是一个Spring Boot应用
     */
    @SpringBootApplication
    public class HelloWorldMainApplication {
        public static void main(String[] args) {
            //启动spring应用,两个参数,主程序类的.class和main中的可变参数
            SpringApplication.run(HelloWorldMainApplication.class,args);
        }
    }
    
  • 编写相关的Controller、Service
    /**
     * @RestController是@ResponseBody和@Controller的结合
     * @ResponseBody告诉控制器这个类的所有方法返回的数据被自动序列化成JSON格式,并且传回HttpResponse这  	* 个对象。
     */
    @RestController
    public class HelloWorldController {
        @RequestMapping("/hello")
        public String hello(){
            return "hello world";
        }
    }
    
  • 运行主程序的main方法测试
  • 简化部署,maven projects—>Lifecycle—>package

    运行打包后的jar:cmd进入jar所在的目录—>java -jar 打包的包名—>回车运行即可

    <!--可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    
6、分析Spring Boot
  • pom文件
    <!--父项目:spring-boot-starter-parent-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>
    <!--他的父项目是:spring-boot-dependencies是真正管理Spring Boot应用里面的所有依赖版本;-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>
    

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

  • 启动器
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

    spring-boot-starter-web

    ​ spring-boot-starter:spring-boot场景启动器;导入了web模块正常运行的依赖组件。

    注:Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
  • 主程序类,主入口类
    /**
     * @SpringBootApplication来标注一个主程序类,说明这是一个Spring Boot应用
     */
    @SpringBootApplication
    public class HelloWorldMainApplication {
        public static void main(String[] args) {
            //启动spring应用,两个参数,主程序类的.class和main中的可变参数
            SpringApplication.run(HelloWorldMainApplication.class,args);
        }
    }
    

    @SpringBootApplication:Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot 就应该运行这个类的main方法来启动SpringBoot应用;

    @Target(ElementType.TYPE) 
    @Retention(RetentionPolicy.RUNTIME) 
    @Documented 
    @Inherited 
    @SpringBootConfiguration//Spring Boot的配置类,标注在某个类上,表示这是一个Spring Boot的配置类;
    @EnableAutoConfiguration//开启自动配置功能,这样自动配置才能生效;
    @ComponentScan(excludeFilters = {       @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),       @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {
    
7、使用IDEA的Spring Initalizer快速创建Spring Boot项目
  • IDEA都支持使用Spring的项目创建向导快速创建一个Spring Boot项目。
  • 点击file—>New Project—>选择Spring Initializr—点击next—>自定义Group和Artifact名,选择Packaging类型—>点击next—>选择对应的依赖Dependencies模块—>点击next—>点击finish完成创建—>删除没有用的文件(.gitignore,HELP.md,mvnw,mvnw.cmd,.mvn文件夹等)。
  • 向导会联网创建Spring Boot项目。
  • 默认生成的Spring Boot项目:
    1. 主程序已经生成好了,我们只需要我们自己的逻辑。
    2. resources文件夹中目录结构:
      • static:保存所有的静态资源; js css images。
      • templates:保存所有的模板页面。(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页 面);可以使用模板引擎(freemarker、thymeleaf)。
      • application.properties:Spring Boot应用的配置文件,可以修改一些默认设置。
8、eclipse使用Spring Starter Project快速创建项目与IDEA类似
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值