Spring Boot 学习笔记

参考:SpringBoot教程html

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

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

1、简单的SpringBoot应用

1. 新建一个Maven项目web

2. 配置pom.xmlspring

<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. 编写Controllerapache

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/hellojson

单元测试api

@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

2、支持JSP

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

1. 添加依赖springboot

<!-- 对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. 

相关文章
相关标签/搜索