创建Spring Boot工程
通过https://start.spring.io/可以生成一个简单的Spring Boot工程,将生成的项目导入Eclipse中即可。
在pom.xml文件中引入Spring Boot的依赖
下面是生成的Spring Boot工程自带的依赖,可以根据实际的需求,手动添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.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</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这里我们在pom.xml中加入web启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
实现一个最简单的web应用
添加一个Controller类
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
启动Spring Boot(由于Spring Boot集成了Tomcat,所以直接启动即可)
运行DemoApplication
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
启动成功
访问http://localhost:8080/hello
使用Spring Boot搭建一个最简单的web应用到此完成。
使用Spring Boot搭建MVC应用
添加数据库相关的依赖
<!-- 添加数据库相关的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
在application.properties文件中配置数据库连接的相关信息
#配置数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/spring4
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Dao层
@Repository
public class UserDao {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public User getUserByName(String username) {
final User user = new User();
String sql = "SELECT * FROM t_user WHERE user_name=?";
jdbcTemplate.query(sql, new Object[] {username}, new RowCallbackHandler() {
public void processRow(ResultSet rs) throws SQLException {
user.setUserId(rs.getInt("user_id"));
user.setUserName(rs.getString("user_name"));
user.setCedits(rs.getInt("credits"));
user.setPassword(rs.getString("password"));
}
});
return user;
}
}
Service层
@Service
public class UserService {
private UserDao dao;
@Autowired
public void setDao(UserDao dao) {
this.dao = dao;
}
public User getUserByName(String username) {
return dao.getUserByName(username);
}
}
Controller层
public class UserController {
private UserService service;
@Autowired
public void setService(UserService service) {
this.service = service;
}
@RequestMapping("/getUser")
public String getUserByName(String username) {
User user = service.getUserByName(username);
return user.toString();
}
}
启动web服务,访问http://localhost:8080/getUser?username=admin
Spring Boot配置Spring MVC
本例中需要用到jsp和jstl,所以需要导入下列依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
配置Spring MVC视图信息
#配置Spring MVC视图
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
为Controller类添加下列方法
@RequestMapping("/login")
public ModelAndView login(String username,String password) {
User user = service.getUserByName(username);
if(!password.equals(user.getPassword())) {
return new ModelAndView("error");
}else {
ModelAndView mv = new ModelAndView();
mv.addObject("username", username);
mv.setViewName("success");
return mv;
}
}
添加登录和登录成功页面
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/login" method="POST">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${username} 登录成功
</body>
</html>
启动web服务,访问http://localhost:8080/login.jsp
输入正确的用户名和密码