spring boot入门

虽然工作用不到springboot,甚至没有用到spring,但这也就是为什么我有了强烈的危机感,现在许多地方应该会用到吧,或许标题应该是从零开始学springboot。跟着尚硅谷的springboot视频学习,如有侵权请留言或发邮箱告诉我

spring boot是用于简化spring开发的框架,是基于spring再封装的一个框架
优点:

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成
    这里的无需配置配置文件,和starters自动依赖真的是很吸引人,想想用spring的时候从各种配置开始学真的有些繁琐。

环境约束

  • jdk1.8
  • maven3.x
  • IDEA2018
  • SpringBoot1.5.9

准备工作

1.在apache-maven-3.3.9\conf\settings.xml中检查:

<profiles>
  <profile>    
        <id>jdk18</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.8</jdk>    
        </activation>    
        <properties>    
            <maven.compiler.source>1.8</maven.compiler.source>    
            <maven.compiler.target>1.8</maven.compiler.target>    
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
        </properties>     
    </profile>  

2.将IDEA的Maven环境修改为当前1.8版本,IDEA自带Maven

HelloWorldDemo

流程:浏览器发送请求,服务器接收后处理并响应HelloWorld

  1. 创建一个Maven工程
    (也可以创建一个SpringInitializr工程,下面会讲到)

    右下角会出现一个AutoImport

    如果你和我一样很不幸的点了×但是又不想重来一遍,那么就在settings中设置Maven-importing

    这个设置呢就意味着IDEA会自动帮我们导入依赖

  2. 导入依赖,在pom.xml中加入:

       <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    </parent>
    
    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    </dependencies>
    

就可以看到右下角在自动下载jar包

  1. 写HelloWorld,在main里新建一个HelloWorld的class

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /*
    @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
     */
    @SpringBootApplication
    public class HelloWorld {
    public static void main(String[] args){
    SpringApplication.run(HelloWorld.class,args);
    }
    }
    
  2. 编写相关的Controller

    @Controller
    public class HelloWorldController {
    
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
    return "Hello World";
    }
    }
    

补习:@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。来源

  1. 运行main方法

可以看到整个过程是非常简单的,也就只有注入依赖、写主程序和控制器就没了,回顾一下springMVC应用的流程,配置bean 创建Ioc容器 在程序中获取bean实例 还有SpringMVC的ModelAndView,(虽然我SpringMVC只是学了个大概,没有实践过),SpringBoot的出现一定是为了我这样的懒人减少配置的步骤才出现的吧

  1. 打包,加一个插件就可以做到

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

无需再目标服务器安装tomcat环境,接着在右侧看到Maven Projects点开,点package让他装

打包好的jar包存在于target文件夹下

用cmd执行java -jar jar包名称就可以一样把应用跑起来,这就是SpringBoot对部署带来的便捷

quickDemo

可使用Spring Initializer快速创建SpringBoot项目

IDE都支持使用Spring快速创建向导来开启一个SpringBoot项目

步骤:New- Project- Spring Initializer
在Dependencies下选择你要的依赖,然后向导会自动联网帮你配好这些依赖把不要的东西去掉。

新建完成后会发现主程序已经帮你创好了,接下来只要写逻辑就可以了。

Controller中的一个注解@RestController包含@Controller和@ResponseBody,ResponseBody在上面已经回顾过。标注在Controller上代表这是一个Controller类。

@RestController
public class HelloController {

@RequestMapping("/hello2")
public String hello(){
return "quick hello";
}
}

这下一个quickDemo就完成了,不仅比原先少写主配置文件和依赖,自动生成的目录结构也将静态资源和配置文件生成好了

-main
---java
------com.quickdemo.demo
---------DemoApplication
---resources
------static    这个放静态资源
------templates    这个保存所有的模态页面
------application.properties    配置文件