POM文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:///POM/4.0.0 http:///xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>.confluence</groupId>
<artifactId>spring-boot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-boot-demo</name>
<description>Demo project for Spring Boot</description>

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.0.RELEASE</version>
	<relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	<java.version>1.8</java.version>
</properties>

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-thymeleaf</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-jpa</artifactId>
	</dependency>

	<dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>1.3.1</version>
	</dependency>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>8.0.9-rc</version>
	</dependency>
	<dependency>
		<groupId>com.microsoft.sqlserver</groupId>
		<artifactId>sqljdbc4</artifactId>
		<version>4.0.0</version>
	</dependency>
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>1.1.9</version>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>

	<!-- 热部署 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<optional>true</optional>
		<scope>true</scope>
	</dependency>
</dependencies>

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<!-- 没有该配置,devtools 不生效 -->
				<fork>true</fork>
			</configuration>

		</plugin>
	</plugins>
</build>

</project>

application.yml文件 spring: profiles: active: dev datasource:
url: jdbc:sqlserver://172.26.205.117:1433;DatabaseName=EGSS_TEST
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
username: EGSS_DEV
password: EgssTest2016! thymeleaf: mode: HTML mybatis: type-aliases-package: .confluence.entity config-location: classpath:mapping/mybatis-config.xml mapper-locations: classpath:mapping/mssql/*.xml logging: level: root: info file: logs/my.log

application-dev.yml文件 server: port: 8081 servlet: context-path: /skcc

logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 文件输出格式 --> <property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" /> <!-- test文件路径 --> <property name="TEST_FILE_PATH" value="d:/test.log" /> <!-- pro文件路径 --> <property name="PRO_FILE_PATH" value="/opt/prod.log" />

<!-- 开发环境 -->
<springProfile name="dev">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${PATTERN}</pattern>
        </encoder>
    </appender>
    <logger name="com.light.springboot" level="debug" />
    <root level="info">
        <appender-ref ref="CONSOLE" />
    </root>
</springProfile> 
<!-- 生产环境 -->
<springProfile name="prod">
    <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${PRO_FILE_PATH}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
            <MaxHistory>100</MaxHistory>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${PATTERN}</pattern>
        </layout>
    </appender>
    <root level="warn">
        <appender-ref ref="PROD_FILE" />
    </root>
</springProfile>

</configuration> Controller文件 @Controller public class BookShopController {

@Autowired
private UserXmlMapper userMapper;

@Autowired
private CarEntity carInfo;

@RequestMapping(value="/greeting")
public String bookshop(String shopName,Model m) {
	CarEntity carInfo = new CarEntity();
	m.addAttribute("ShopName", "阳光书林");
	m.addAttribute("CarInfo", carInfo.toString());
	return "bookshop";
}

@RequestMapping(value ="/",method=RequestMethod.GET)
public String home() {
	return "index";
}

@GetMapping(value="books/{userid}")
public String detail(@PathVariable Integer userid,Model m) {
	m.addAttribute("bookid", userid);
	UserEntity user = new UserEntity();
	user.setId(userid);
	user.setUsername("TOM JACK(王忠义)");
	List<UserEntity> users = userMapper.getAllUser();
	m.addAttribute("user", user);
	m.addAttribute("CarInfo", carInfo.toString());
	return "bookshop";
}

@GetMapping(value="users")
public String detail(Model m) {
	List<UserEntity> userEntities = new ArrayList<>();
	userEntities = userMapper.getAllUser();
	m.addAttribute("users", userEntities);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
	return "users";
}

@GetMapping(value="userdetail/{id}")
public String userdetail(@PathVariable(required=false) Integer id,Model m) {
	Map<String,Object> map = new HashMap<>();
	map.put("id", id);
	UserEntity user =   userMapper.getUserByid(map);
	m.addAttribute("user", user);                                                                                                                                 
	return "userdetail";
}

@PostMapping(value="insertUser")
public String insertUser(UserEntity userEntity) {
	Map<String, Object> map = new HashMap<>();
	map.put("username", userEntity.getUsername());
	 userMapper.insertUser(map);
	return "redirect:/users";
}

@PostMapping(value="deleteUser")
public String deleteUser(UserEntity userEntity) {
	Map<String, Object> map = new HashMap<>();
	map.put("id", userEntity.getId());
	 userMapper.deleteUser(map);
	return "redirect:/users";
}

@PostMapping(value="updateUser")
public String updateUser(UserEntity userEntity) {
	Map<String, Object> map = new HashMap<>();
	map.put("id", userEntity.getId());
	map.put("username", userEntity.getUsername());
	 userMapper.updateUser(map);
	return "redirect:/users";
}

} <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <!-- 使用IE最高版本 --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- 移动端宽度与设备同宽 缩放比例为1 --> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Spring Book Shop</title>

<link rel="stylesheet" type="text/css" media="all" th:href="@{/bootstrap-3.3.7-dist/css/bootstrap.min.css}">

</head> <body> <div class="container" style="max-width: 700px;"> <h2 class="page-heaher" style="margin-top: 50px;">详细信息</h2> <div class="well"> <p>能取到值吗</p> <p th:text="${bookid}">1001</p> <p> <strong>用户id:</strong><span th:text="${user.id}">1001</span> </p> <p> <strong>用户姓名:</strong><span th:text="${user.username}">张三</span> </p> <p> <input type="text" id="txtuserid" value="T1000256" th:value="${user.id}" /> <input type="text" id="txtusername" value="TOM KOL" th:value="${user.username}" />

		</p>
		<p th:text="${user.username}">123654</p>
		<p th:switch="${user.id}">
			<strong>状态:</strong> 
			<span th:case="0">想读</span> 
			<span th:case="1">已读</span>
			<span th:case="2">不读</span>
		</p>

	</div>
	<div class="alert alert-success" th:unless="${user.id == 0}">
	 <strong>不错</strong>,你已经开始行动啦
	</div>
	<div class="alert alert-warning" th:if="${user.id == 0}">
	 <strong>啊</strong>,你还没有开始行动啦
	</div>
	<p>
	 <strong>CarInfo:</strong>
	 <span th:text="${CarInfo}"></span>
	</p>
	
	<a rel="nofollow" href="javascript:history.go(-1)" class="btn btn-default">返回</a>
</div>

</body> </html>

程序启动入口 @SpringBootApplication @MapperScan(".confluence.dao") public class SpringBootDemoApplication {

public static void main(String[] args) {
	SpringApplication.run(SpringBootDemoApplication.class, args);
}

@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
	return args -> {

		System.out.println("Let's inspect the beans provided by Spring Boot:");

		String[] beanNames = ctx.getBeanDefinitionNames();
		Arrays.sort(beanNames);
		for (String beanName : beanNames) {
			System.out.println(beanName);
		}

	};
}

}