转-spring-boot 注解配置mybatis+druid(新手上路)-http://blog.csdn.net/sinat_36203615/article/details/53759935
spring-boot 注解配置mybatis+druid(新手上路)
spring-boot 注解配置mybatis+druid(新手上路)
之前已经介绍了新手如何搭建一个简单的springboot,接下来介绍一下springboot+mybatis+druid的配置方法。
鄙人不才,参考了一些高手的博文以及官方文档,整理出了一点心得。
对高手的感谢无以言表,原文地址:http://blog.csdn.net/lxhjh/article/details/51764604
http://blog.csdn.net/xiaoyu411502/article/details/51392237
使用环境:JDK1.8 、eclipse-neon、maven3.5+、mysql5.5
框架使用:springboot1.4.1、druid1.0.26、mybatis自动获取版本号
介绍:我使用的配置文件格式为application.properties,基本都是使用注解的方式搭建。
数据库表结构,databases名为mydatabases;表明为city,字段有三个,分别是id、name、province,数据类型是varchar(20)。
第一步:
开始还是新建springboot项目,然后导包。
新建maven项目,选择jar包。
配置pom.xml文件。
- <properties>
- <java.version>1.8</java.version>
- </properties>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.4.1.RELEASE</version>
- </parent>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!-- druid数据库连接池 -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.0.26</version>
- </dependency>
- <!-- springboot的mybatis -->
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>1.1.1</version>
- </dependency>
- <!-- MySql数据库驱动 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <!-- Springboot 热部署 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <optional>true</optional>
- </dependency>
- </dependencies>
第二步:
创建启动类。
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.web.servlet.ServletComponentScan;
- @SpringBootApplication
- @ServletComponentScan //扫描Servlet
- @MapperScan("mapper")<span style="white-space:pre"> </span>//这里mapper是你的mybatis的mapper目录。
- public class Application {
- public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
- }
- }
第三步:
填写配置文件。(这里呀,参数比较多,可以选择填写。)
我使用的是application.properties文件,该文件放在src/main/resources目录下,springboot框架启动后会自动读取它。
- #数据库设置
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- spring.datasource.driverClassName=com.mysql.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/mydatabases
- spring.datasource.username=root
- spring.datasource.password=123
- #--------------------------
- # 下面为连接池的补充设置,应用到上面所有数据源中
- # 初始化大小,最小,最大
- spring.datasource.initialSize=5
- spring.datasource.minIdle=5
- spring.datasource.maxActive=20
- # 配置获取连接等待超时的时间
- spring.datasource.maxWait=60000
- # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
- spring.datasource.timeBetweenEvictionRunsMillis=60000
- # 配置一个连接在池中最小生存的时间,单位是毫秒
- spring.datasource.minEvictableIdleTimeMillis=300000
- spring.datasource.validationQuery=SELECT 1 FROM DUAL
- spring.datasource.testWhileIdle=true
- spring.datasource.testOnBorrow=false
- spring.datasource.testOnReturn=false
- # 打开PSCache,并且指定每个连接上PSCache的大小
- spring.datasource.poolPreparedStatements=true
- spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
- # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
- spring.datasource.filters=stat,wall,log4j
- # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
- spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
- # 合并多个DruidDataSource的监控数据
- #spring.datasource.useGlobalDataSourceStat=true
第四步:
配置数据源。这里相关的参数会自动赋值到datasource里。
- import javax.sql.DataSource;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import com.alibaba.druid.pool.DruidDataSource;
- @Configuration
- public class DruidDataSourceConfiguration {
- @Bean
- @ConfigurationProperties(prefix = "spring.datasource")
- public DataSource druidDataSource() {
- DruidDataSource druidDataSource = new DruidDataSource();
- return druidDataSource;
- }
- }
第五步:
写一个实体类。这里可以随意哈。
- import java.io.Serializable;
- public class City implements Serializable{
- private static final long serialVersionUID = 1L;
- private String id;
- private String name;
- private String province;
- City(){
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getProvince() {
- return province;
- }
- public void setProvince(String province) {
- this.province = province;
- }
- @Override
- public String toString() {
- return "City [id=" + id + ", name=" + name + ", province=" + province + "]";
- }
- }
第六步:
写mapper文件。这里的包地址为Application的MapperScan的值。
- import org.apache.ibatis.annotations.Param;
- import org.apache.ibatis.annotations.Select;
- public interface CityMapper {
- @Select("select * from city where id = #{id}")
- City findCityById(@Param("id") String id);
- }
第七步:
这里就不写Service了,直接在Controller里写了。
- import javax.annotation.Resource;
- import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- @RestController
- @RequestMapping("/demo")
- @EnableAutoConfiguration
- public class HelloController {
- @Resource
- private CityMapper cityMapper;
- @RequestMapping("/test")
- String test1(){
- return "hello,test1()";
- }
- @RequestMapping("/findCity2")
- City findCity2(@RequestParam String id){
- return cityMapper.findCityById(id);
- }
- }
第八步:
这里要写filter,配合druid监控的使用。
- import javax.servlet.annotation.WebFilter;
- import javax.servlet.annotation.WebInitParam;
- import com.alibaba.druid.support.http.WebStatFilter;
- @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
- initParams={
- @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
- }
- )
- public class DruidStatFilter extends WebStatFilter{
- }
第九步:
配置监控界面。
- import com.alibaba.druid.support.http.StatViewServlet;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.annotation.WebInitParam;
- @WebServlet(urlPatterns = "/druid/*",
- initParams={
- @WebInitParam(name="allow",value="192.168.16.110,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
- @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)
- @WebInitParam(name="loginUsername",value="admin"),// 用户名
- @WebInitParam(name="loginPassword",value="123"),// 密码
- @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
- })
- public class DruidStatViewServlet extends StatViewServlet {
- private static final long serialVersionUID = 1L;
- }
第十步:
启动测试。在application.java中启动,浏览器中先进入:localhost:8080/druid/login.html,输入用户名:admin,密码:123,进入。
再执行一下localhost:8080/demo/findCity2?id=001,(你的数据)查看结果。这里需要你的数据库里有数据。
在监控页面看看sql监控是否被监控到。
附上源码:点击打开链接
肚子饿。。。
转-spring-boot 注解配置mybatis+druid(新手上路)-http://blog.csdn.net/sinat_36203615/article/details/53759935的更多相关文章
- Nginx 配置location root 转自https://blog.csdn.net/rofth/article/details/78581617
nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. 最基本的区别 ...
- Spring配置xml自动提示——转载https://blog.csdn.net/sinat_18474835/article/details/79370629
以Spring2.0为例: 下载地址: Csdn: http://download.csdn.net/download/hh775313602/9812757 没积分的可以去百度网盘下载,我已共享: ...
- OpenSessionInViewFilter 的配置及作用(原文地址: http://blog.csdn.net/sunsea08/article/details/4545186)
spring为我们解决hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessio ...
- Ubuntu 16.04安装JDK并配置环境变量(转发:https://blog.csdn.net/yan3013216087/article/details/78307258)
系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...
- 基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681
基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...
- 使用Mybatis进行连表查询、left join---https://blog.csdn.net/jinzhencs/article/details/51980518
使用Mybatis进行连表查询.left join https://blog.csdn.net/jinzhencs/article/details/51980518
- Spring Boot 注解配置 day03
一.SpringBoot注解 @PropertySource 和 @ImportResource和@Bean 1.@PropertySource 加载指定位置的配置文件(只能是properties文件 ...
- Spring Boot下配置MyBatis多数据源
http://m.blog.csdn.net/article/details?id=51481911
- 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293
实例化Bean的方法(基于xml配置) 标签: spring framework 2015-09-01 13:43 918人阅读 评论(0) 收藏 举报 分类: Spring FrameWork(7 ...
随机推荐
- ThreadLocal实现原理
一.ThreadLocal介绍 这是一个线程的局部变量.也就是说,只有当前线程可以访问.既然是只有当前线程可以访问的数据,自然是线程安全的. 为每一个线程分配不同的对象,需要在应用 ...
- POJ-2689 Prime Distance (两重筛素数,区间平移)
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13961 Accepted: 3725 D ...
- centos6.5升级安装openssl1.0.2h
最新漏洞通报: Openssl多个漏洞安全预警 2016-05-05 18:05:39 一.概述 在OpenSSL官方昨日(2016/5/3)发布的安全公告中,公开了两个新的高危漏洞CVE-2016- ...
- JAVA System.arraycopy 和Arrays.copyof 效率比较
System.arraycopy()源码.可以看到是native方法: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中. ...
- 手动安装Silverlight 4 Tools for Visual Studio 2010
手动安装吧,将Silverlight 4 Tools for Visual Studio 2010.exe改成rar文件,解压缩,按照下面的步骤安装: 1.silverlight_developer. ...
- POJ 3481 SBT做法
第三次做此题.. 不解释啦. 不过变成用SBT来做啦! SBT好处在于能够保证树的高度为lgn,真真正正的平衡二叉树. 因此删除,插入操作与普通二叉树几乎相同. #include <cstdio ...
- python爬虫-链家租房信息获取
#导入需要用到的模块 import requests import pymysql import time from bs4 import BeautifulSoup import tkinter a ...
- redis写入数据被转义问题
1.phpredis扩展写入redis的数据发现“ \ 会被自动转义成\" \\. 如: 写入 dadaf"daf\dad 在redis命令行读出为 dadaf\"da ...
- svn: E200009: 'lib/systemd/system/dropbear@.service': a peg revision is not allowed here problem
case: svn add lib/systemd/system/dropbear@.service svn: E200009: 'lib/systemd/system/dropbear@.servi ...
- Unity5.2如何使用VS调试
今天不想使用Mono了,想用VS调试Unity,上百度搜了很久无果,VPN又连不上,结果搞两个小时没搞定.11点终于可以上谷歌了,十分钟搞定.由此可见,百度真的很坑爹...废话不多说下面上正文. 误区 ...