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);
}
};
}
}
















