比较精简的SpringBoot2 设置,包含能力:提供RestFul、JDBC、Log4j2
POM文件设置:
org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2 org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-jdbc com.alibaba druid 1.0.29 org.springframework.boot spring-boot-maven-plugin
application.properties 文件配置:
server.port=8006server.session.timeout=10server.tomcat.uri-encoding=UTF-8spring.datasource.url=jdbc:mysql://127.0.0.1:3306/XXXDB?useUnicode=true&characterEncoding=UTF-8spring.datasource.username=rootspring.datasource.password=XXXspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.max-idle=10spring.datasource.max-wait=10000spring.datasource.min-idle=5spring.datasource.initial-size=5spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.druid.default-auto-commit = falselogging.config=classpath:log4j2.xml
log4j2.xml 文件配置(摘自网络):
XXXservice logs/${app_name}
应用程序入口:
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ComponentScan;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication@EnableTransactionManagement //启动全局事务控制@ComponentScanpublic class Application{ public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
控制器(Rest请求处理类):
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.DeleteMapping;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.PutMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/rest/test")public class TestController{ private Logger logger = LoggerFactory.getLogger(TestController.class); @PostMapping(value = "/a") public String test1(@RequestBody String account) { logger.info("tihs is a info"); logger.warn("tihs is a warn"); logger.error("tihs is a error"); return "test1:post:" + account; } @GetMapping(value = "/a") public String test2() { logger.info("tihs is a info"); logger.warn("tihs is a warn"); logger.error("tihs is a error"); return "test2:get:"; } @GetMapping(value = "/") public String test3() { return "test3:get:"; } @DeleteMapping(value = "/account/{id}") public RestSimpleRsp deleteById(@PathVariable String id) { return null; } @PutMapping(value = "/account") public RestRspmodify(@RequestBody AccountMO account) { return null; } @PostMapping(value = "/account") public RestRsp add(@RequestBody AccountMO account) { return null; } @PostMapping(value = "/accounts") public RestRsp getList(@RequestBody QueryParam queryParam) { return null; }}
DAO编写:
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Component;@Componentpublic class SysOperatorDao{ @Autowired protected JdbcTemplate jdbcTemplate; public String addSysOperator(SysOperatorMO mo) { String sql = "insert into " + SysOperatorMO.getTableName() + "(id,username,password,name,wxCode,email,mobile) values(?,?,?,?,?,?,?)"; int ret = jdbcTemplate.update(sql, new Object[] { mo.getId(), mo.getUsername(), mo.getPassword(), mo.getName(), mo.getWxCode(), mo.getEmail(), mo.getMobile() }); if (ret != 1) { return null; } return mo.getId(); } public boolean modifySysOperator(SysOperatorMO mo) { String sql = "update " + SysOperatorMO.getTableName() + " set name = ?,wxCode = ?,email = ?,mobile = ? where id = ?"; int ret = jdbcTemplate.update(sql, new Object[] { mo.getName(), mo.getWxCode(), mo.getEmail(), mo.getMobile(), mo.getId() }); return ret == 1; } public boolean deleteSysOperator(String id) { String sql = "delete from " + SysOperatorMO.getTableName() + " where id = ?"; int ret = jdbcTemplate.update(sql, new Object[] { id }); return ret == 1; } /** * 查询系统操作人员列表 * * @param queryParam * 查询参数 * @param mos * 返回列表信息(当前这一批,不是全部数据) * @return 总记录数 */ public int getSysOperatorList(QueryParam queryParam, Listmos) { String sql = "select count(*) totalNum," + SysOperatorMO.getDefaultQueryFields() + " from " + SysOperatorMO.getTableName(); return -1; }}
注:
1、应用程序入口类需放在根package中,因为Controller、Component等组件的扫描是从Application所在的包往下递归的
2、官方的向导中依赖了 spring-boot-starter ,引入Log4j2时各种报错,干掉就好了!