包含功能

  • 阿里云消息服务MNS
  • 阿里云消息队列服务(即时消息、延迟消息、事务消息)
  • AOP日志
  • 基于MyBatis通用Mapper及DRUID的数据库访问
  • dubbo支持
  • 错误处理
  • 七牛图片服务
  • redis多连接池支持
  • swagger配置
  • 跨域配置

源码地址:https://github.com/ronwxy/base-spring-boot (如果觉得有帮助,请帮忙给个star)

主要版本

  • springboot 1.5.13.RELEASE
  • spring 4.3.17.RELEASE

1.在pom.xml文件中引入依赖管理

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.springboot.base</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.2-SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

2.在pom.xml文件中引入你想要使用的starters,如

<dependency>
<groupId>com.springboot.base</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
</dependency>

3.在项目的配置文件中配置starters需要的相关配置属性

  • swagger-spring-boot-starter
    swagger:
api-description: demo for swagger api use swagger starters #api描述 如 ${spring.application.name}
api-title: demo #api标题 如 ${spring.application.name}
apis-base-package: com.example.demo.api #扫描的包名 可填根包名
group-name: demo #组名 如 ${spring.application.name}
swagger-registry-path: http://{swaggerServerIp:port}/swagger/register #swaggerapi 注册接口地址
  • tkmapper-spring-boot-starter druid数据源配置
    spring:
datasource:
druid:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://{dbServerIp:port}/db_name?charSet=UTF-8
username: dbUsername
password: dbPassword
# 自定义配置
initialSize: 2 # 初始化大小
minIdle: 1 # 最小连接
maxActive: 5 # 最大连接
druidServletSettings:
allow: 127.0.0.1
deny:
loginUsername: admin
loginPassword: Passw0rd
resetEnable: true
druidFilterSettings:
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
maxWait: 60000 # 配置获取连接等待超时的时间
timeBetweenEvictionRunsMillis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
minEvictableIdleTimeMillis: 300000 # 配置一个连接在池中最小生存的时间,单位是毫秒
validationQuery: SELECT 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true # 打开PSCache,并且指定每个连接上PSCache的大小
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat #,wall(添加wall代码里不能直接拼接sql,druid有sql注入校验) # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据

tkmapper配置, 无默认配置

  • 自动扫描entity及mapper包,扫描路径与springboot默认路径一致

  • 扫描@Mapper

  • 自动注册com.springboot.boot.tkmapper.mapper.BaseMapper 基础接口

  • qiniu-spring-boot-starter

    qiniu:
access-key: xxx
secret-key: xxx #密钥
buckets:
- bucket-name: xxx #桶名
bucket-host: xxx #桶域名
scheme: http #协议
bucket-private: true #是否是私有桶
pipeline: imageThumbQueue #管道名
token-expired-time: 3600 #token过期时间秒
  • alimq-spring-boot-starter
    aliyun:
mq:
onsAddr: http://onsaddr-internet.aliyun.com/rocketmq/nsaddr4client-internet #mq地址
topic: xxx #主题名称
accessKey: xxx #key
secretKey: xxx #密钥
producer: #生产者配置
enabled: true #是否开启生产者
producerId: xxx #生产者ID
consumer: #消费者配置
enabled: true #是否开启消费者
consumerId: xxx #消费者ID
tag-suffix: xxx #主题标签后缀,用来区分同一主题下不同tag
  • dubbo-spring-boot-starter
    dubbo:#dubbo zookeeper注册中心配置
zk:
registry: ip:port #注册中心zookeeper地址

用法

@Configuration
@EnableDubboProvider
@EnableDubboConsumer
public class DubboConfig{ }
  • aoplog-spring-boot-starter 没有配置

  • error-spring-boot-starter

    • 没有配置
    • 提供默认的全局异常处理器com.springboot.boot.error.exception.ExceptionHandlerAutoConfiguration$DefaultGlobalExceptionHandler
  • alimns-spring-boot-starter

   mns:
access-id: xxx
access-key: xxx
account-endpoint: xxx
  • redisclient-spring-boot-starter
    spring:
redis:
host: ip
database: 1
redis:
clients:
db1:
host: ip
database: 2
clients-enabled: true #是否开启多个客户端
    @Configuration
@RedisClient("db1")//除了默认的连接池会实例化另一个连接池
public class ConfigClass{
@Bean
public RedisTokenStore getRedisTokenStore(RedisClientFactory factory){
//获取db1的连接池
RedisConnectionFactory connectionFactory = factory.getInstance("db1",RedisConnectionFactory.class);
return new RedisTokenStore(connectionFactory);
}
}

排除自动配置示例

    @SpringBootApplication(exclude = Swagger2AutoConfiguration.class)
public class TestApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(TestApplication.class).run(args);
}
}

Sping Boot入门到实战之实战篇(二):一些常用功能的Spring Boot Starters的更多相关文章

  1. Spring Boot 入门之缓存和 NoSQL 篇(四)

    原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一.前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降.但是,大多 ...

  2. 43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    [视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...

  3. (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...

  4. Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用

    该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...

  5. Spring Boot Freemarker特别篇之contextPath【从零开始学Spring Boot】(转)

    需求缘起:有人在群里@我:请教群主大神一个问题,spring boot  + freemarker 怎么获取contextPath 头疼死我了,网上没一个靠谱的 .我就看看之前博客中的 [Spring ...

  6. Spring Boot Freemarker特别篇之contextPath【从零开始学Spring Boot

      需求缘起:有人在群里@我:请教群主大神一个问题,spring boot  + freemarker 怎么获取contextPath 头疼死我了,网上没一个靠谱的 .我就看看之前博客中的 [Spri ...

  7. 24. Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】

    转:http://blog.csdn.net/linxingliang/article/details/52069509 凡是被spring管理的类,实现接口EnvironmentAware 重写方法 ...

  8. (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】

    凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. com. ...

  9. spring boot:方法中使用try...catch导致@Transactional事务无效的解决(spring boot 2.3.4)

    一,方法中使用try...catch导致@Transactional事务无效的解决方法 1,问题的描述: 如果一个方法添加了@Transactional注解声明事务, 而方法内又使用了try catc ...

随机推荐

  1. Codeforces 2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest L. Useful Roads

    L. Useful Roads time limit per test:4 seconds memory limit per test:512 megabytes input:standard inp ...

  2. 洛谷 P1027 Car的旅行路线

    P1027 Car的旅行路线 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路 ...

  3. 显示3行,还要省略号(这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器)

    div{ overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp:; -webkit- ...

  4. 写一个Foreach帮助类,在razor中使用

    原文发布时间为:2011-05-05 -- 来源于本人的百度文章 [由搬家工具导入] A Better Razor Foreach Loop(razor delegate extension) htt ...

  5. A way to CQRS and DDD

    Recently, I'm trying to make a approach to DDD with CQRS, Event Sourcing, Domain Isolation, Domain R ...

  6. LeetCode OJ-- First Missing Positive

    https://oj.leetcode.com/problems/first-missing-positive/ 给一列数,找出缺失的第一个正数.要求时间复杂度 O(n) 第一步遍历一遍,找出最大的数 ...

  7. Ceres Solver: 高效的非线性优化库(一)

    Ceres Solver: 高效的非线性优化库(一) 注:本文基于Ceres官方文档,大部分由英文翻译而来.可作为非官方参考文档. 简介 Ceres,原意是谷神星,是发现不久的一颗轨道在木星和火星之间 ...

  8. IT人为了自己父母和家庭,更得注意自己的身体和心理健康

    我前一阵在一家互联网公司,工作节奏是995,忙的时候,要晚上10点才能离开公司,有时候周六还得加班.自己感觉身体状况有所下降,且听说其它一个组,在体检后多少都查出问题来,细思极恐. 有时候确实忙,那么 ...

  9. JSOI 2009 BZOJ 1444 有趣的游戏

    题面 题目描述 小阳阳发明了一个有趣的游戏:有n个玩家,每一个玩家均有一个长度为 l 的字母序列,任何两个玩家的字母序列不同.共有m种不同的字母,所有的字母序列都由这m种字母构成,为了方便,我们取大写 ...

  10. CBIntrospector俗称:内部检查工具

    Download View Introspector   (CBIntrospector)内部检查工具是IOS和IOS模拟器的小工具集,帮助在调试的UIKit类的用户界面,它尤其有用于动态UI布局创建 ...