品种处理工科具,mybatis大多据源最简应用方案

作者:云顶集团线路检测

MyBatis 是一款能够的长久层框架,它帮衬定制化 SQL、存款和储蓄进度以及高级映射。MyBatis 幸免了差不离全部的 JDBC 代码和手动设置参数以及获得结果集。MyBatis 可以使用简单的 XML 或注明来布局和照耀原生消息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。各类MyBatis应用程序首要都以运用SqlSessionFactory实例的,七个SqlSessionFactory实例能够由此SqlSessionFactoryBuilder得到。SqlSessionFactoryBuilder能够从二个xml配置文件或许贰个预订义的配置类的实例得到。前些天大家看一下,他怎样同spring boot结合再一齐。

咱俩在实际上开辟进度中一时会跨越两个题目,正是接口文档。一时候接口还没开荒完可是接口文书档案须求先交由,因为别的方也足以依据接口文档先搞起来。但是临时在付出进程中会开采当初概念的不是那么完美,就能够变动。那些进度又涉及到部分联系等等的可比繁琐的业务。有标题应际而生,就能够有有心人出来支持化解。贰个出品Swagger2应际而生。他可以在大家定义Controller时通过Swagger2注脚的措施自动生成文书档案,只要劳动起着,那个文书档案就能够一向看见。当接口产生调解时,接口文书档案也能跟着调节,是一款非常好用的工具。废话相当少说,大家后续看pom

不清楚有没有人会问,本地缓存有不可或缺和spring boot结合在共同啊?自个儿写个Map不就能够了?答案是自然能够,然而不美观,因为全部是硬编码。他是有多高雅,看看就精通了。照旧老样子,看看pom中的定义

聊到多数据源,日常都来解决那个难点啊,主从形式只怕专门的学业比较复杂须求连续不相同的分库来援助职业。大家项目是继承者的情势,互连网找了过多,大都以依附jpa来做非常多据源建设方案,要不就是老的spring大多据源实施方案,还广大利用aop动态切换,感到有一些小复杂,其实本身只是想找三个粗略的抢先二分之一据扶助而已,折腾了四个钟头整理出来,供大家参谋。

刚到铺子见习不久,今后要做一个RESTful规范的微服务,第贰个学习的工具正是Maven,学习《Maven实战》,提炼笔记。

先是大家领悟,spring boot 他得以支撑xml形式布置Bean,可是它越是着重提出的艺术是通过代码的不二诀要,也便是布置类完结配置,因为如此,我们得以越来越好的保持代码的统一性,那样也会赞助我们越来越好的查看源码,所以大家接下去的科目中的所以实例都使用配置类的情势取代xml的布局。

 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> </dependency>
 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>

废话相当少说一向上代码吧

Maven是怎么样,功能是哪些?

Maven是项目管理工科具,首要有两大成效:项目创设和信赖管理。项目营造正是种类编写翻译、测验、集成公布得以实现自动化,注重管理是很有益于的功用,只要把方今项目所重视的构件写到pom配置文件中,就足以从旅馆中自行导入对应的构件及构件信任的任何部件,不相同的maven项目分享二个构件客栈,项目援用商旅中的创设,制止重新下载。

首先依旧看下大家的pom文件中引入的jar

springfox-swagger2是swagger2的主干库,包含了部分讲授及管理逻辑等。springfox-swagger-ui 是页面包车型地铁来得。上边大家看看配置文件

spring-context中重要性提供了Cache的架空中接力口。spring-context-support提供了Cache的有血有肉的完毕,我们本文使用的是谷歌的Guava实现。声飞鹤个布署类,设置七个CacheManager的Bean

pom包就不贴了相比较轻松该信任的就依靠,重若是数据库那边的安排:

Maven怎么样设置?

先是步 安装JDK,JDK的安装与遭受变量的布局,在maven项目构建的历程中须要编写翻译和周转,也就必要javac.exe和java.exe。第二步 从maven.apache.org下载maven的.zip包(Linux系统下载.tar.gz),解压到想要放置的目录下,配置遭遇变量MAVEN_HOME和PATH,MAVEN_品种处理工科具,mybatis大多据源最简应用方案。HOME为maven的根目录,PATH增添%MAVEN_HOME%bin,配置完结,在cmd中测验mvn命令是或不是可行 mvn -version。(假诺重启之后mvn命令无效,直接用MAVEN_HOME的门道替换PATH中的路线,删除MAVEN_HOME)

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <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.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency>
package com.shuqi;import io.swagger.annotations.Api;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class Swagger2Config { @Bean public Docket apiDocket() { ApiInfo apiInfo = new ApiInfoBuilder().title.description("description") .termsOfServiceUrl.version .contact(new Contact("name", "", "email")).build(); return new Docket(DocumentationType.SWAGGER_2).apiInfo.select() .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)).paths(PathSelectors.any .build(); }}
package com.shuqi;import com.google.common.cache.CacheBuilder;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.EnableCaching;import org.springframework.cache.guava.GuavaCache;import org.springframework.cache.support.SimpleCacheManager;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Arrays;import java.util.concurrent.TimeUnit;@Configuration@EnableCachingpublic class CacheConfig { @Bean public CacheManager localCacheManager() { SimpleCacheManager simpleCacheManager = new SimpleCacheManager(); //用户缓存一天 GuavaCache ONE_DAY = new GuavaCache( "ONE_DAY", CacheBuilder .newBuilder() .expireAfterWrite(1, TimeUnit.DAYS) .build; simpleCacheManager.setCaches(Arrays.asList; return simpleCacheManager; }}
mybatis.config-locations=classpath:mybatis/mybatis-config.xmlspring.datasource.test1.driverClassName = com.mysql.jdbc.Driverspring.datasource.test1.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8spring.datasource.test1.username = rootspring.datasource.test1.password = rootspring.datasource.test2.driverClassName = com.mysql.jdbc.Driverspring.datasource.test2.url = jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf-8spring.datasource.test2.username = rootspring.datasource.test2.password = root
Maven怎样采纳?

Maven集成在IDE境遇中就相当的少说了,批注用手动的措施开创项目到奉行mvn命令达成塑造。第一步 成立项目 在钦点地方创制文件夹命令为项目名称,在文书夹内创设文件pom.xml,在pom.xml中增多如下内容:

<?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.helloworld</groupId> <artifactId>helloworld-first</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Maven Hello World Project</name></project>

groupId、artifactId、version为品种的骨干坐标,项目营造完结作为另外门类的注重性营造,正是通过坐标定位,所以maven须求全体品类都应当有坐标。groupId格式为倒过来的域名,以总项目名结尾,artifactId格式推荐为总项目名-模块名,方便在文件系统中对同样等级次序差别模块的构件归类,version为近来项目标版本号,版本号后缀为snapshot表示不牢固版,name为项目名称。构件的名称组成为artifactId-version.package第二步 编写主代码 Maven规定主代码在src/main/java/下,Maven也会在该路径下搜寻主代码,在类型根目录下相继创设src/main/java文件夹,在java文件夹下依次创制包com.helloworld.first,在first下开创First.java。编写主代码如下:

package com.helloworld.first;public class First{ public String sayHello(){ return "Hello Maven!"; } public static void main(String[] args){ System.out.println( new First().sayHello; }}

其三步 编写翻译运转:

mvn clean compile 清理/target并编译mvn exec:java -Dexec.mainClass="com.helloworld.first.First" 无参运行mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.args="arg0 arg1 arg2" 有参运行

第四步 编写测验代码 打包时不会卷入测量试验代码,仅测验程序是还是不是准确。先在pom.xml中增多JUnit规范单元测验依赖:

<?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.helloworld</groupId> <artifactId>helloworld-first</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Maven Hello World Project</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies></project>

dependencies标签下增多正视构件,groupId、artifactId、version基本坐标显明某些重视包,scope是注重范围,暗许是compile,也便是编写翻译、测量检验都会凭仗该包,scope是test,唯有测验会依赖该包。Maven暗中认可在src/test/java下搜索test代码,在java下开创包com.helloworld.first,first文件夹下创设FirstTest.java,增加如下代码:

package com.helloworld.first;import static org.junit.Assert.assertEquals;import org.junit.Test;public class FirstTest{ @Test public void testSayHello(){ String result = new First().sayHello(); assertEquals("Hello Maven!",result); } }

第五步 单元测量试验

mvn test

上述手动建设构造的文本夹正是系列骨架,当然能够用Maven自带的档期的顺序骨架,命令mvn archetype:generate,依照提醒选取骨架并创建项目。如若须求也能够和煦写archetype。

本文由云顶集团线路检测发布,转载请注明来源

关键词: