springboot框架快速搭建
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot框架快速搭建相关的知识,希望对你有一定的参考价值。
1. 新建Maven项目 spring-boot
2. pom.xml
<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.java</groupId> <artifactId>spring-boot</artifactId> <version>1.0.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <dependencies> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.11</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
3. 启动类 Starter.java
package com.java.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * 启动类 * * @author Logan * @version 1.0.0 * */ @SpringBootApplication public class Starter extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Starter.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Starter.class); } }
4. User.java
package com.java.springboot.pojo; public class User { private String id; private String username; private String password; private Integer age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + ", age=" + age + "]"; } }
5. UserMapper.java
package com.java.springboot.mapper; import java.util.List; import com.java.springboot.pojo.User; public interface UserMapper { Integer checkLogin(User user); List<User> findUserList(User user); void addUser(User user); void updateUser(User user); void deleteUser(User user); }
6. UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.java.springboot.mapper.UserMapper"> <!-- 配置数据库字段和实体类映射 --> <resultMap id="userMap" type="com.java.springboot.pojo.User"> <id property="id" column="id" /> <result property="username" column="username" /> <result property="password" column="password" /> <result property="age" column="age" /> </resultMap> <!-- 检查登录 --> <select id="checkLogin" parameterType="com.java.springboot.pojo.User" resultType="java.lang.Integer"> select 1 from user where username=#{username} and password=#{password} </select> <!-- 查询用户列表 --> <select id="findUserList" parameterType="com.java.springboot.pojo.User" resultType="com.java.springboot.pojo.User"> select id,username,password,age from user </select> <!-- 新增用户 --> <insert id="addUser" parameterType="com.java.springboot.pojo.User" > <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String"> select replace(uuid(), \'-\', \'\') as id from dual </selectKey> insert into user(id,username,password,age) values(#{id},#{username},#{password},#{age}); </insert> <!-- 修改用户信息 --> <update id="updateUser" parameterType="com.java.springboot.pojo.User" > update user set username=#{username}, password=#{password}, age=#{age} where id=#{id} </update> <!-- 根据id删除用户 --> <delete id="deleteUser" parameterType="java.lang.String"> delete from user where id=#{id} </delete> </mapper>
7、UserService.java
package com.java.springboot.service; import java.util.List; import com.java.springboot.pojo.User; public interface UserService { Integer checkLogin(User user); List<User> findUserList(User user); void addOrUpdateUser(User user); void deleteUser(User user); }
8、UserServiceImpl.java
package com.java.springboot.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.java.springboot.mapper.UserMapper; import com.java.springboot.pojo.User; import com.java.springboot.service.UserService; @Service("userService") public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Integer checkLogin(User user) { return userMapper.checkLogin(user); } @Override public List<User> findUserList(User user) { return userMapper.findUserList(user); } @Override @Transactional public void addOrUpdateUser(User user) { if (null == user.getId() || user.getId().isEmpty()) { userMapper.addUser(user); } else { userMapper.updateUser(user); } } @Override @Transactional public void deleteUser(User user) { userMapper.deleteUser(user); } }
9、UserController.java
package com.java.springboot.controller; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.java.springboot.pojo.User; import com.java.springboot.service.UserService; @Controller @RequestMapping("/user") public class UserController { private static final Log LOG = LogFactory.getLog(UserController.class); @Autowired private UserService userService; @RequestMapping("/login") public String login() { return "user/login"; } @RequestMapping("/checkLogin") public String checkLogin(User user, Model model) { LOG.info("Into checkLogin"); System.out.println(user); String responseUrl = null; // 检查用户名密码是否存在 Integer result = userService.checkLogin(user); System.out.println("result: " + result); LOG.info("result: " + result); // 绑定用户名密码输出返回 if (null == result) { model.addAttribute("username", user.getUsername()); model.addAttribute("password", user.getPassword()); responseUrl = "user/login"; } // 登录成功,访问主页 else { responseUrl = "user/main"; } LOG.info("Exit checkLogin"); return responseUrl; } @ResponseBody @RequestMapping("/findUserList") public List<User> findUserList(User user) { LOG.info("Into findUserList"); System.out.println(user); List<User> list = userService.findUserList(user); LOG.info("Exit findUserList"); return list; } @RequestMapping("/toAddOrUpdateUser") public String toAddOrUpdateUser(User user, Model model) { LOG.info("Into toAddOrUpdateUser"); System.out.println("user: " + user); // 输出id,根据id是否为空,判断是新增还是修改 model.addAttribute("user", user); LOG.info("Exit toAddOrUpdateUser"); return "user/addOrUpdateUser"; } @RequestMapping("/addOrUpdate") public String addOrUpdate(User user) { LOG.info("Into addOrUpdate"); System.out.println("user: " + user); userService.addOrUpdateUser(user); System.out.println(user); LOG.info("Exit addOrUpdate"); return "user/main"; } @ResponseBody @RequestMapping("/deleteUser") public String deleteUser(User user) { System.out.println(user); LOG.info("Into deleteUser"); userService.deleteUser(user); LOG.info("Exit deleteUser"); return "删除成功!"; } }
10、ApplicationConfig.java
package com.java.springboot.config; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; /** * 配置类 * * @author Logan * @version 1.0.0 * */ @Configuration @MapperScan({ "com.java.springboot.mapper" }) public class ApplicationConfig { }
11、src/main/resources 下配置文件
12、application.properties
server.port=8080 #数据库自动配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.32.10:3306/springboot?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #Thymeleaf 参见org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties spring.thymeleaf.prefix=classpath:/views/ spring.thymeleaf.suffix=.html
13、log4j.properties
log4j.rootLogger= INFO, stdout,logfile
log4j.logger.INFO=INFO,logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\\:mm\\:ss.SSS} [%5p] [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=G:/Java/logs/springboot/LogFile.log
log4j.appender.logfile.DatePattern=\'_\'yyyy-MM-dd\'.log\'
log4j.appender.logfile.Threshold=INFO
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH\\:mm\\:ss} [%5p] - %m%n
log4j.appender.logfile.Append=true
14、/static/index.html
<!DOCTYPE html> <html> <head> <title>登录</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> function addUser() { location.href = "/user/toAddOrUpdateUser"; } </script> </head> <body> <form action="/user/checkLogin" method="post"> <table> <tr> <td>用户名:</td> <td><input name="username" /><br /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" /><br /></td> </tr> <tr> <td><input type="submit" value="登录" /></td> <td><input type="button" value="注册" onclick="addUser();" /></td> </tr> </table> </form> </body> </html>
15、/views/user/login.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>登录</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> function addUser() { location.href = "/user/toAddOrUpdateUser"; } </script> </head> <body> <form action="/user/checkLogin" method="post"> <table> <tr> <td>用户名:</td> <td><input name="username" th:value="${username}" /><br /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" th:value="${password}" /><br /></td> </tr> <tr> <td><input type="submit" value="登录" /></td> <td><input type="button" value="注册" onclick="addUser();" /></td> </以上是关于springboot框架快速搭建的主要内容,如果未能解决你的问题,请参考以下文章springboot入门--快速搭建一个springboot框架
SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建前端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架
SpringBoot+MyBatisPlus+Vue 前后端分离项目快速搭建前端篇快速生成后端代码封装结果集增删改查模糊查找毕设基础框架