zoukankan      html  css  js  c++  java
  • SpringBoot 框架整合

    代码地址如下:
    http://www.demodashi.com/demo/12522.html

    一、主要思路

    1. 使用spring-boot-starter-jdbc集成Mybatis框架
    2. 通过spring-boot-starter-cache集成EhCache
    3. 使用WebServlet集成Druid监控

    二、程序实现

    1. POM 文件
    
    	<?xml version="1.0" encoding="UTF-8"?>
    	<project xmlns="http://maven.apache.org/POM/4.0.0"
    			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    			 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    		<modelVersion>4.0.0</modelVersion>
    
    		<groupId>com.geek</groupId>
    		<artifactId>SpringBootInit</artifactId>
    		<version>1.0-SNAPSHOT</version>
    
    
    		<parent>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-parent</artifactId>
    			<version>1.5.9.RELEASE</version>
    		</parent>
    
    		<properties>
    			<mybatis.version>3.4.5</mybatis.version>
    			<mybatis.spring.version>1.3.1</mybatis.spring.version>
    			<druid.version>1.1.6</druid.version>
    			<ehcache.version>3.4.0</ehcache.version>
    			<mysql.connector.version>5.1.45</mysql.connector.version>
    		</properties>
    
    
    
    		<dependencies>
    			<!-- SpringBoot -->
    			<dependency>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-starter-web</artifactId>
    			</dependency>
    			<dependency>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-starter-jdbc</artifactId>
    			</dependency>
    			<dependency>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-starter-cache</artifactId>
    			</dependency>
    			<dependency>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-starter-logging</artifactId>
    			</dependency>
    			<!-- Mybatis -->
    			<dependency>
    				<groupId>org.mybatis.spring.boot</groupId>
    				<artifactId>mybatis-spring-boot-starter</artifactId>
    				<version>1.3.0</version>
    			</dependency>
    			<dependency>
    				<groupId>org.mybatis</groupId>
    				<artifactId>mybatis-spring</artifactId>
    				<version>${mybatis.spring.version}</version>
    			</dependency>
    			<!-- MySQL -->
    			<dependency>
    				<groupId>mysql</groupId>
    				<artifactId>mysql-connector-java</artifactId>
    				<version>${mysql.connector.version}</version>
    			</dependency>
    			<!-- MySQL Druid -->
    			<dependency>
    				<groupId>com.alibaba</groupId>
    				<artifactId>druid</artifactId>
    				<version>${druid.version}</version>
    			</dependency>
    			<!-- EhCache -->
    			<dependency>
    				<groupId>org.ehcache</groupId>
    				<artifactId>ehcache</artifactId>
    				<version>${ehcache.version}</version>
    			</dependency>
    		</dependencies>
    
    	</project>
    
    
    2. 集成Mybatis
    
    	mybatis:
    	  mapper-locations: classpath:mappers/*.xml
    	  type-aliases-package: com.geek.*.dto
    
    
    3. 集成EhCache
    	<?xml version="1.0" encoding="UTF-8"?>
    	<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    			 xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
    			 updateCheck="false">
    
    		<defaultCache
    				eternal="false"
    				maxElementsInMemory="1000"
    				overflowToDisk="false"
    				diskPersistent="false"
    				timeToIdleSeconds="0"
    				timeToLiveSeconds="600"
    				memoryStoreEvictionPolicy="LRU"/>
    		<cache
    				name="users"
    				eternal="false"
    				maxElementsInMemory="100"
    				overflowToDisk="false"
    				diskPersistent="false"
    				timeToIdleSeconds="0"
    				timeToLiveSeconds="300"
    				memoryStoreEvictionPolicy="LRU"/>
    	</ehcache>
    

    java中使用注解

    	@Override
        @Cacheable(value="users",key="'user_'+#id")
        public User getUserById(Long id) {
            return userMapper.selectByPrimaryKey(id);
        }
    
        @Override
        @CacheEvict(value="users",allEntries=true)
        public int saveUser(User user) {
            return userMapper.insertSelective(user);
        }
    
    4. durid 使用

    WebServlet 配置

    
    @WebServlet(urlPatterns = "/druid/*",
            initParams={
                    @WebInitParam(name="allow",value=""),// IP白名单 (没有配置或者为空,则允许所有访问, 逗号分隔)
                    @WebInitParam(name="deny",value=""),// IP黑名单 (存在共同时,deny优先于allow)
                    @WebInitParam(name="loginUsername",value="admin"),// 用户名
                    @WebInitParam(name="loginPassword",value="admin"),// 密码
                    @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
            })
    public class DruidController extends StatViewServlet {
    
    }
    

    Filter 配置

    @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
            initParams={
                    @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
            })
    public class DruidStatFilter extends WebStatFilter {
    }
    

    三、效果图如下:

    增加数据

    第一次执行

    第二次执行

    四、程序目录结构

    五、其他补充

    springBoot介绍
    百度百科:https://baike.baidu.com/item/Spring Boot/20249767?fr=aladdin
    spring官方:https://projects.spring.io/spring-boot/
    SpringBoot 框架整合

    代码地址如下:
    http://www.demodashi.com/demo/12522.html

    注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

  • 相关阅读:
    Babelfish
    【动态规划】货币面值
    contest 1.18
    contest 1.17
    contest 1.16
    contest 1.15
    contest 1.14
    contest 1.13
    contest 12.31
    [cf]Round #529 (Div. 3)
  • 原文地址:https://www.cnblogs.com/demodashi/p/8512823.html
Copyright © 2011-2022 走看看