Spring Boot 项目搭建
thymeleaf 模板引擎
thymeleaf 是什么?简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。
什么是Spring Boot?
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
使用Spring Boot有什么好处?
简单、快速、方便!
项目结构展示
教你如何快速搭建一个Spring Boot项目
1.创建project
2.选择Spring Initializr(或Maven)
3.设置
4.依赖项可以不用选择,点击Finnish,完成项目搭建
5.设置pom.xml
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.wu</groupId>
<artifactId>blog</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>blog</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<!-- <thymeleaf.version>3.0.11</thymeleaf.version>-->
<thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</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>
6.将application.properties改application.yml
server:
port: 8081
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
thymeleaf:
mode: HTML
jpa:
hibernate:
ddl-auto: update
show-sql: true
接下来就是实现一个简单的博客登录退出功能
1.UserDao
public interface UserDao extends JpaRepository<User,Long> {
User findByUsernameAndPassword(String username, String password);
}
2.IUserServlce
public interface IUserService {
User checkUser(String username,String password);
}
**3.UserServiceImpl **
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserDao userDao;
@Override
public User checkUser(String username, String password) {
return userDao.findByUsernameAndPassword(username, MD5Util.code(password));
}
}
4.LoginController
@Controller
@RequestMapping("/admin")
public class LoginController {
@Autowired
private IUserService userService;
@GetMapping
public String toLogin(){
return "admin/login";
}
@PostMapping("/login")
public String login(String username, String password, HttpSession session, RedirectAttributes redirectAttributes){
User user=userService.checkUser(username,password);
if (user!=null){
session.setAttribute("user",user);
return "admin/index";
}else {
redirectAttributes.addAttribute("message","用户名或密码错误");
return "redirect:/admin";
}
}
@GetMapping("/logout")
public String logout(HttpSession session){
session.removeAttribute("user");
return "admin/login";
}
}