Spring Boot 学习笔记

参考:SpringBoot教程

  Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot特性如下:

  • 创建独立Spring应用程序
  • 嵌入式Tomcat,Jetty容器,无需部署WAR包
  • 简化Maven及Gradle配置
  • 尽可能的自动化配置Spring
  • 直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等
  • 无需代码生成及XML配置

一、简单的SpringBoot应用

1. 新建一个Maven项目

2. 配置pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sa.springboot</groupId>
    <artifactId>spring-boot-sample-helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!-- 通过继承parent项目获得默认配置,包括默认使用Java 8,UTF-8编码;识别classpath下的application.properties和application.yml等 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>

    <!-- 预定义的一些Web开发的常用依赖,包括Tomcat、jackson和spring-webmvc等 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

3. 编写Controller

package com.sa.springboot.controller;
import ...

@RestController // @Restcontroller相当于@Controller(类的注释)和@ResponseBody(方法的注释)的结合,使方法以json格式输出
@EnableAutoConfiguration // same as @SpringBootApplication,@Configuration,@ComponentScan.它会根据你的pom配置来判断这是一个什么应用(如web应用),并创建相应的环境。
public class SampleController {

    @RequestMapping("/hello")
    String home() {
        return "Hello World!!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args); // 从main方法启动Spring应用的类,创建ApplicationContext实例且加载所有单例beans。
    }
}

4. 执行main方法,并使用浏览器访问http://localhost:8080/hello

单元测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleControllerTest {
    private MockMvc mvc;
    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new SampleController()).build();
    }
    @Test
    public void getHello() throws Exception {
    mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
    }
}
View Code

开发环境的调试:springBoot对调试支持很好,修改之后可以实时生效,需要添加以下的配置:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
   </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
   </plugins>
</build>
View Code

二、支持JSP

  springboot内部对jsp的支持并不是特别理想,其推荐的视图是Thymeleaf,但大多数java开发人员还是喜欢使用jsp。使用jsp的步骤如下:

1. 添加依赖

<!-- 对jsp的支持 -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- jsp对servlet容器的支持  -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- jsp中使用jstl标签的支持  -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

2. 

posted @ 2018-04-11 11:26  安小  阅读(134)  评论(0编辑  收藏  举报