zoukankan      html  css  js  c++  java
  • 转-spring-boot 注解配置mybatis+druid(新手上路)-http://blog.csdn.net/sinat_36203615/article/details/53759935

     

    spring-boot 注解配置mybatis+druid(新手上路)

    转载 2016年12月20日 10:17:17

    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文件。

    [html] view plain copy
     
    1.  <properties>  
    2.     <java.version>1.8</java.version>  
    3.  </properties>  
    4.  <parent>  
    5.    <groupId>org.springframework.boot</groupId>  
    6.    <artifactId>spring-boot-starter-parent</artifactId>  
    7.    <version>1.4.1.RELEASE</version>  
    8.  </parent>  
    9.  <dependencies>  
    10.    <dependency>  
    11.        <groupId>org.springframework.boot</groupId>  
    12.        <artifactId>spring-boot-starter-web</artifactId>  
    13.    </dependency>  
    14.    <!-- druid数据库连接池 -->  
    15.    <dependency>  
    16.        <groupId>com.alibaba</groupId>  
    17.        <artifactId>druid</artifactId>  
    18.        <version>1.0.26</version>  
    19. </dependency>  
    20. <!-- springboot的mybatis -->  
    21. <dependency>  
    22.        <groupId>org.mybatis.spring.boot</groupId>  
    23.        <artifactId>mybatis-spring-boot-starter</artifactId>  
    24.        <version>1.1.1</version>  
    25.    </dependency>  
    26.    <!-- MySql数据库驱动 -->  
    27.    <dependency>  
    28.        <groupId>mysql</groupId>  
    29.        <artifactId>mysql-connector-java</artifactId>  
    30.    </dependency>  
    31.    <!-- Springboot 热部署 -->  
    32.    <dependency>  
    33.        <groupId>org.springframework.boot</groupId>  
    34.        <artifactId>spring-boot-devtools</artifactId>  
    35.        <optional>true</optional>  
    36.    </dependency>  
    37.    </dependencies>  

    第二步:

    创建启动类。

    [java] view plain copy
     
    1. import org.mybatis.spring.annotation.MapperScan;  
    2. import org.springframework.boot.SpringApplication;  
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;  
    4. import org.springframework.boot.web.servlet.ServletComponentScan;  
    5.   
    6. @SpringBootApplication  
    7. @ServletComponentScan   //扫描Servlet  
    8. @MapperScan("mapper")<span style="white-space:pre"> </span>//这里mapper是你的mybatis的mapper目录。  
    9. public class Application {  
    10.     public static void main(String[] args) {  
    11.         SpringApplication.run(Application.class, args);  
    12.     }  
    13. }  

    第三步:

    填写配置文件。(这里呀,参数比较多,可以选择填写。)

    我使用的是application.properties文件,该文件放在src/main/resources目录下,springboot框架启动后会自动读取它。

    [plain] view plain copy
     
    1. #数据库设置  
    2. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource  
    3. spring.datasource.driverClassName=com.mysql.jdbc.Driver  
    4. spring.datasource.url=jdbc:mysql://localhost:3306/mydatabases  
    5. spring.datasource.username=root  
    6. spring.datasource.password=123  
    7. #--------------------------  
    8. # 下面为连接池的补充设置,应用到上面所有数据源中  
    9. # 初始化大小,最小,最大  
    10. spring.datasource.initialSize=5  
    11. spring.datasource.minIdle=5  
    12. spring.datasource.maxActive=20  
    13. # 配置获取连接等待超时的时间  
    14. spring.datasource.maxWait=60000  
    15. # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒   
    16. spring.datasource.timeBetweenEvictionRunsMillis=60000  
    17. # 配置一个连接在池中最小生存的时间,单位是毫秒   
    18. spring.datasource.minEvictableIdleTimeMillis=300000  
    19. spring.datasource.validationQuery=SELECT 1 FROM DUAL  
    20. spring.datasource.testWhileIdle=true  
    21. spring.datasource.testOnBorrow=false  
    22. spring.datasource.testOnReturn=false  
    23. # 打开PSCache,并且指定每个连接上PSCache的大小   
    24. spring.datasource.poolPreparedStatements=true  
    25. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20  
    26. # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙   
    27. spring.datasource.filters=stat,wall,log4j  
    28. # 通过connectProperties属性来打开mergeSql功能;慢SQL记录  
    29. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000  
    30. # 合并多个DruidDataSource的监控数据  
    31. #spring.datasource.useGlobalDataSourceStat=true  

    第四步:

    配置数据源。这里相关的参数会自动赋值到datasource里。

    [java] view plain copy
     
    1. import javax.sql.DataSource;  
    2. import org.springframework.boot.context.properties.ConfigurationProperties;  
    3. import org.springframework.context.annotation.Bean;  
    4. import org.springframework.context.annotation.Configuration;  
    5.   
    6. import com.alibaba.druid.pool.DruidDataSource;  
    7. @Configuration  
    8. public class DruidDataSourceConfiguration {  
    9.   
    10.     @Bean  
    11.     @ConfigurationProperties(prefix = "spring.datasource")  
    12.     public DataSource druidDataSource() {  
    13.         DruidDataSource druidDataSource = new DruidDataSource();  
    14.         return druidDataSource;  
    15.     }  
    16. }  

    第五步:

    写一个实体类。这里可以随意哈。

    [java] view plain copy
     
    1. import java.io.Serializable;  
    2.   
    3. public class City implements Serializable{  
    4.     private static final long serialVersionUID = 1L;  
    5.     private String id;  
    6.     private String name;  
    7.     private String province;  
    8.     City(){  
    9.           
    10.     }  
    11.     public String getId() {  
    12.         return id;  
    13.     }  
    14.     public void setId(String id) {  
    15.         this.id = id;  
    16.     }  
    17.     public String getName() {  
    18.         return name;  
    19.     }  
    20.     public void setName(String name) {  
    21.         this.name = name;  
    22.     }  
    23.     public String getProvince() {  
    24.         return province;  
    25.     }  
    26.     public void setProvince(String province) {  
    27.         this.province = province;  
    28.     }  
    29.     @Override  
    30.     public String toString() {  
    31.         return "City [id=" + id + ", name=" + name + ", province=" + province + "]";  
    32.     }  
    33.       
    34. }  

    第六步:

    写mapper文件。这里的包地址为Application的MapperScan的值。

    [java] view plain copy
     
    1. import org.apache.ibatis.annotations.Param;  
    2. import org.apache.ibatis.annotations.Select;  
    3.   
    4. public interface CityMapper {  
    5.       
    6.     @Select("select * from city where id = #{id}")  
    7.     City findCityById(@Param("id") String id);  
    8. }  

    第七步:

    这里就不写Service了,直接在Controller里写了。

    [java] view plain copy
     
    1. import javax.annotation.Resource;  
    2.   
    3. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;  
    4. import org.springframework.web.bind.annotation.RequestMapping;  
    5. import org.springframework.web.bind.annotation.RequestParam;  
    6. import org.springframework.web.bind.annotation.RestController;  
    7.   
    8. @RestController  
    9. @RequestMapping("/demo")  
    10. @EnableAutoConfiguration  
    11. public class HelloController {  
    12.     @Resource  
    13.     private CityMapper cityMapper;  
    14.     @RequestMapping("/test")  
    15.     String test1(){  
    16.         return "hello,test1()";  
    17.     }  
    18.     @RequestMapping("/findCity2")  
    19.     City findCity2(@RequestParam String id){  
    20.         return cityMapper.findCityById(id);  
    21.     }  
    22. }  

    第八步:

    这里要写filter,配合druid监控的使用。

    [java] view plain copy
     
    1. import javax.servlet.annotation.WebFilter;  
    2. import javax.servlet.annotation.WebInitParam;  
    3.   
    4. import com.alibaba.druid.support.http.WebStatFilter;  
    5.   
    6. @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",  
    7. initParams={  
    8.          @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源  
    9.  }  
    10. )  
    11. public class DruidStatFilter extends WebStatFilter{  
    12.   
    13. }  


    第九步:

    配置监控界面。

    [java] view plain copy
     
    1. import com.alibaba.druid.support.http.StatViewServlet;  
    2. import javax.servlet.annotation.WebServlet;  
    3. import javax.servlet.annotation.WebInitParam;  
    4. @WebServlet(urlPatterns = "/druid/*",   
    5.     initParams={  
    6.             @WebInitParam(name="allow",value="192.168.16.110,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)  
    7.             @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)  
    8.             @WebInitParam(name="loginUsername",value="admin"),// 用户名  
    9.             @WebInitParam(name="loginPassword",value="123"),// 密码  
    10.             @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能  
    11.     })  
    12. public class DruidStatViewServlet extends StatViewServlet {  
    13.     private static final long serialVersionUID = 1L;  
    14.       
    15. }  

    第十步:

    启动测试。在application.java中启动,浏览器中先进入:localhost:8080/druid/login.html,输入用户名:admin,密码:123,进入。

    再执行一下localhost:8080/demo/findCity2?id=001,(你的数据)查看结果。这里需要你的数据库里有数据。

    在监控页面看看sql监控是否被监控到。

    附上源码:点击打开链接

    肚子饿。。。

  • 相关阅读:
    Navicat 远程连接ubuntu出现的问题
    替换 ubuntu 自带的python版本
    xpath疑惑
    xpath中返回值问题
    AttributeError: 'unicode' object has no attribute 'xpath'
    linux下mysql忘记密码解决方案
    IntelliJ idea常用快捷键
    最近的说明(本篇不谈具体技术,看技术的可以忽略)
    常用的排序算法介绍和在JAVA的实现(二)
    mysql数据库查询过程探究和优化建议
  • 原文地址:https://www.cnblogs.com/anruy/p/7843073.html
Copyright © 2011-2022 走看看