快速构建 spring-boot 项目

1. 引入pom依赖


<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.0modelVersion>

  <groupId>com.zjwgroupId>
  <artifactId>spring-boot-studyartifactId>
  <version>1.0-SNAPSHOTversion>

  <parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>1.5.16.RELEASEversion>
  parent>

  <dependencies>
    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-testartifactId>
    dependency>
  dependencies>
project>

2. 引入配置文件

2.1 引入application.yml

spring:
  application:
    name: spring-boot-study
server:
  port: 10000

2.2 引入logback.xml


<configuration>
  
  <property name="LOG_HOME" value="./log"/>
  
  <property name="LOG_NAME" value="spring-boot-study"/>
  
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
    encoder>
  appender>
  
  <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      
      <FileNamePattern>${LOG_HOME}/${LOG_NAME}-%d{yyyy-MM-dd}.log
      FileNamePattern>
      
      <MaxHistory>30MaxHistory>
    rollingPolicy>
    <encoder
      class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%npattern>
    encoder>
    
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <MaxFileSize>10MBMaxFileSize>
    triggeringPolicy>
  appender>
  
  <root level="INFO">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="ROLLING_FILE"/>
  root>
configuration>

3 编写启动类和Controller类

3.1 启动类

package com.zjw;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {

  private static final Logger logger = LoggerFactory.getLogger(MyApplication.class);
  
  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
    logger.info("Spring Application Running...");
  }
}

3.2 Controller类

package com.zjw.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
  private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

  @RequestMapping("/hello")
  public String hello() {
    logger.info("HelloController hello function invoked.");
    return "Hello, I'm Spring boot Application.";
  }
}

4 编写测试类

package com.zjw.test;

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;

import java.net.MalformedURLException;
import java.net.URL;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class HelloControllerTest {
  private static final Logger logger = LoggerFactory.getLogger(HelloControllerTest.class);

  @LocalServerPort
  private int port;
  private URL base;
  @Autowired
  private TestRestTemplate template;

  @Before
  public void before() throws MalformedURLException {
    this.base = new URL("http://localhost:" + port + "/hello");
  }

  @Test
  public void testHello() {
    ResponseEntity<String> response = template.getForEntity(base.toString(), String.class);
    logger.info(response.getBody());
    assertThat(response.getBody(), equalTo("Hello, I'm Spring boot Application."));
  }
}

附项目结果截图

快速构建 spring-boot 项目_第1张图片

你可能感兴趣的:(快速构建 spring-boot 项目)