博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SpringBoot】SpringBoot最精简的设置
阅读量:7111 次
发布时间:2019-06-28

本文共 7200 字,大约阅读时间需要 24 分钟。

比较精简的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 RestRsp
modify(@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, List
mos) { String sql = "select count(*) totalNum," + SysOperatorMO.getDefaultQueryFields() + " from " + SysOperatorMO.getTableName(); return -1; }}

 

注:

1、应用程序入口类需放在根package中,因为Controller、Component等组件的扫描是从Application所在的包往下递归的

2、官方的向导中依赖了 spring-boot-starter ,引入Log4j2时各种报错,干掉就好了!

转载于:https://www.cnblogs.com/njlittlecat/p/9601304.html

你可能感兴趣的文章
React 学习之路 (三) 组件&props
查看>>
[前端工坊] 微信小游戏|萌狗冠军之路,纯干货分享!
查看>>
阿里巴巴java开发手册学习记录,php版
查看>>
Redux
查看>>
774. Jewels and Stones
查看>>
在react-native中添加高可维护的iconfont字体
查看>>
java中反射机制的基本语法及练习
查看>>
mac 安装 lightgbm 无法导入(以及解决cmake命令无法编译)
查看>>
three.js快速入门和实战
查看>>
人人都能懂的Vue源码系列—09—initEvents
查看>>
express+nginx 搭建最简单web项目
查看>>
mpvue 小程序如何自定义tabBar,不使用navigateTo跳转,模拟redirectTo跳转
查看>>
以数据库思维理解区块链
查看>>
在Laravel中使用事件记录SQL查询到日志
查看>>
ABAP Netweaver和Hybris Enterprise Commerce Platform的登录认证
查看>>
vue elementUI 表单校验(多层嵌套)
查看>>
ionic3学习之目录结构分析
查看>>
教你如何修改github上的项目语言类型
查看>>
干货 | 手把手教你快速撸一个区块链
查看>>
github fork别人项目之后,更新和提交操作
查看>>