自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 SpringBoot整和Ehcache

Ehcache是很早就用的一个缓存。但是自从redis横扫天下后,这个就很少有人问津了,但是在小项目中,这个还是能被使用作为数据库的缓存。至于mybatis和web以及日志的配置,亲爱的读者请参考Springboot配置logback日志----依葫芦画瓢就能用这篇博文今天我们就来使用Srpingboot配置 一下:首先加入依赖: <!-- Spring B...

2019-07-31 13:01:12 129

原创 SpringBoot使用AOP全局日志

首先要加入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </depende...

2019-07-30 22:02:25 697

原创 Springboot配置logback日志----依葫芦画瓢就能用

再没有自定义配置的时候,我们能在application种这样配置:logging.level.root=debuglogging.level.web=debuglogging.level.sql=debuglogging.level.org.apache.ibatis=debuglogging.level.com.wangye.spbootmybatis3=debuglogging...

2019-07-30 16:43:13 545

原创 SpringBoot多环境配置---带图带文,一看就知道

很多的时候我们的项目再不同环境是需要不同的配置的,那么我们怎么分环境部署或者打包呢,请往下面看首先要在pom.xml加入如下的配置:<profiles> <profile> <id>dev</id> <properties> <spring.active&gt...

2019-07-30 14:44:28 486

原创 SpringBoot集成web接口映射遇到的坑

在早期的版本,Spring映射接口总是在容器启动的时候会打印logger.info("Mapped \"" + mapping + "\" onto " + handlerMethod);就是说每一个接口映射完都会打印日志。比如springBoot 整合spring-webmvc在5.0.5版本的时候就会使用org.springframework.web.servlet.handle...

2019-07-30 12:13:28 1098

原创 SpringBoot整合Mybatis+Jta+automatic实现分布式事务-----看这一篇包你能配置成功

笔者在SpringBoot+Mybatis多数据源配置,以及加入事物控制博文中,已经实现了分布式事务,但是实现的是单数据源的事务的控制,设计到一个service事务要操作两个数据源,就只能控制@Primary修饰的事务管理器。那么怎么一个数据源控制两个数据源的提交呢,MySQL是支持XA协议的,数据库驱动中也有一个com.mysql.cj.jdbc.MysqlXADataSource用来支持X...

2019-07-29 14:06:02 2444 4

原创 SpringBoot+Mybatis多数据源配置,以及加入事物控制

有时候为了让数据分割,不让数据库压力太大,数据会放在两个数据源中(两个逻辑库),但是我又不想为一个数据库搭建一个微服务,这个时候就要让一个Web服务管理两个数据源。SpringBoot中就能配置双数据源,接下来我们就来配置多数据源。SpringBoot多数据源配置:有两个数据源就要配置两个DataSource数据源,要使用Mybatis,也要有两个SqlSessionFactory,同时也...

2019-07-25 23:40:59 1380

原创 SpringBoot整合事物

Springboot只要配置了数据源是默认开启事务的,只要在Service中默认的使用@Transactional注解,然后设置注解的传播属性和读写属性以及其他属性就好。笔者在SpringBoot使用HikriCP数据源连接池整合Mybatis,MappperXML和Mapper注解混用版已经配置了HikriCP数据源和mybatis,笔者就沿用这篇的配置,详情点击链接进去看就好了。...

2019-07-24 23:33:09 231

原创 SpringBoot整合JPA

JPA我们用的并不多,国人一般都喜欢用Mybatis,但是外国很多人喜欢用JPA。为了了解一下,并且以后万一用得着,笔者还是要把这篇文章发出来,给自己做一个笔记。废话少说,我们上代码:首先还是依赖的配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/P...

2019-07-24 22:43:25 170

原创 Mybatis高级注解使用

Mybatis 除了使用@Select @Update等普通注解来写sql之外,还有高级sql。像下面这种:public class UserMapperProvider { public String getUserById1(Long id){ StringBuffer sql = new StringBuffer("select"); sql....

2019-07-24 15:21:43 482

原创 SpringBoot使用HikriCP数据源连接池整合Mybatis,MappperXML和Mapper注解混用版

笔者在 SpringBoot使用HikriCP数据源连接池整合Mybatis,MappperXML版和SpringBoot使用HikriCP数据源连接池整合Mybatis,Mappper注解版中分别展示了mybatis注解版和XML如何和SpringBoot整合。今天笔者就来演示混用版的使用,其实混用版就是在XML版直接用注解就好。数据源pom.xml文件配置、application.pr...

2019-07-24 14:35:16 861

原创 SpringBoot使用HikriCP数据源连接池整合Mybatis,Mappper注解版

mybatis3之后,支持不适用xml来写Sql官方文档上说,sql可以写成像下面这样: @Update({"<script>", "update Author", " <set>", " <if test='username != null'>username=#{username},</if&...

2019-07-24 14:08:11 1056

原创 SpringBoot使用HikriCP数据源连接池整合Mybatis,MappperXML版

Springboot2.0之后,推荐使用HikriCP作为数据源连接池,笔者也查过多方的资料,虽然没有测过HikriCP的效率和性能,但是多方验证它很强,Spring也默认,必定有它的道理那么今天我们就使用HikriCP来整合SpringBoot和Mybatis,Mybatis是XML版的,笔者之后会发注解版的和混合版的。开始吧,首先的数据源要有,笔者采用的是MySQL8.0.16版,查询...

2019-07-24 11:50:52 957

原创 如何消除@Autowired报Field injection is not recommended的警告

对于一些强迫者来说,代码中有一些警告,就看起来很不爽,今天笔者我也遇到了这种问题,在SpringBoot中,使用@Autowired的时候,警告Field injection is not recommended,如下图:Spring Team recommends : “Always use constuctor based dependency injection in your be...

2019-07-24 10:31:57 17586 8

原创 SpringMVC防止表单重复提交

首先创建一个自定义的注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Token { boolean create() default false; boolean remove() default false;}在跳转页面的方...

2019-07-23 10:24:37 392

原创 SpringBoot集成JDBC-Template

首先是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="ht...

2019-07-22 17:59:58 405

原创 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别

大家在连接mysql的时候,启动项目,会警告你推荐使用com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver那么这两者到底有什么区别呢本质区别:com.mysql.jdbc.Driver是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver是 mysql-connector-java ...

2019-07-22 17:40:54 50904 11

原创 Java解释器模式

我们学习计算机程序语言,需要符合语法,是因为编译器会帮我们翻译我们的程序代码,那么Java的解释器模式就是一种解释文法的设计模式。解释器模式定义:给定一个语言,定义它的文法得一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。从上面的定义我们知道我们知道,首先就是要有一种文法,文法就是所谓的语法,像我们的汉语一样,一般请况之下我们要有主谓宾结构,比如:我 打 你,主语是...

2019-07-22 15:23:02 183

原创 Java中介者

假如有很多的对象联系很紧密,在没有中间者的情况下就会像下面这种方式:那么有了中介者,就会变成以下这种方式:先来看看中介者的定义:使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。中介...

2019-07-19 23:21:57 177

原创 Java访问者模式

访问者模式定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。理解:假设有一种数据结构,有操作想访问这中数据结构,但是又不想破坏数据结构,所以就要定义访问者来访问。以账单为例:公司看账单的有财务和老板,账单有支出和收入账单,账单的数据结构肯定是不能变化的,一旦生成了账单,就只能看,不能改。但是访问者是多变的,比如...

2019-07-19 17:38:31 284

原创 Java状态模式

状态模式:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Object for States),状态模式是一种对象行为型模式。《设计模式的艺术》角色分析:Context(环境类):环境类拥有各种不同状态的对象,作为外部使用的接口,负责调用状态类接口。State(抽象状态):抽象状态既可以为抽象类,也可以直接定义成接口。主要用于定义状态抽象方法,...

2019-07-19 16:14:33 281 1

原创 Java备忘录模式-------实现下棋,悔棋,恢复

很多的时候,因为从事的职业分工不同,做服务端的程序员几乎用不到Java的备忘录模式,但是在其他的领域,这种模式就用的多了,比如编写PC端的应用的,Android程序员。那么备忘录模式是什么呢?备忘录模式的定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。从上面的定义可...

2019-07-19 11:56:48 736

原创 Java命令模式

命令模式的定义:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作,将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。角色分析:Command :声明执行操作的接口ConcreteCommand :将一个接收者对象绑定于一个动作, 调用接收者相应的操作,以实现ExecuteClient:创建一个具体命令对象并设定它的接...

2019-07-18 18:02:59 244

原创 Java责任链模式

现实中,我们会遇到很多需要有流程的事,比如请假审批,请假一天找组长,请假两天找经理,请假三天找老板,如果我们把业务耦合起来,我们会写很多分支语句,这样看起来代码就很冗长,如果使用了责任链模式,那就避免了写很多的if else,审批流程也会解耦。接下来我们就以请假来作为示例,实现责任链模式:首先我们要限定职位和等级:public enum Position { Staff(0...

2019-07-18 17:06:36 187

原创 Java迭代器模式

面向对象中有一些聚合对象(即一组对象的组合结构,如Java集合、数组等),迭代器模式就是为了不暴露聚合对象的内部结构的情况下,提供顺序访问聚合对象的方式。迭代器模式:提供一个方法去顺序防问一个集合中的元素,而又不暴露这些元素的内部表示角色分析:抽象迭代器具体迭代器抽象聚合类具体聚合类上代码:这个是抽象的聚合对象public interface MyContai...

2019-07-18 15:27:45 157

原创 Java观察者模式

假设有一种这样的情况,一方被多方实时监控的,一方一旦发生改变,监控他的多方立马就能知道。在Java设计模式中,这个叫观察者模式,观察者观察被观察者,被观察者改变,立马通知观察者。每天我们的生活总是会被天气影响,添衣服,减衣服,打伞,都是被天气影响的。所以观察者模式笔者就以天气和各种气象站为例。实现观察者设计模式:上代码:首先定义观察者接口和公示接口:/** * 观察者接口...

2019-07-18 11:55:06 137

原创 Java模板方法模式

模板,顾名思义,就是定义了做一件事的步骤,比如做一道菜,规定为,先洗菜,再切菜,再烹饪调味,再装盘。模板就事把上面的做一道菜的步骤定死了,但是具体洗菜怎么洗,切菜怎么切,推迟到子类实现。为了让说明更清晰我们就以做菜来作为示例,实现模板方法模式。上代码:首先要定义一个模板,最好定义模板的就是抽象类了public abstract class AbstractCooking {...

2019-07-18 10:16:31 167 1

原创 Java策略模式

策略思想是针对一组算法。将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。角色分析:抽象策略角色:这个是一个抽象的角色,通常情况下使用接口或者抽象类去实现。对比来说,就是我们的Comparator接口。具体策略角色:包装了具体的算法和行为。对比来说,就是实现了Comparator接...

2019-07-17 17:58:47 339

原创 Java享元模式

享元模式是为了节省内存的模式 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的 对象,我们可以通过享元模式,节省内存. 享元模式以共享的方式高效地支持大量细粒度对象的重用。 享元对象能做到共享的关键是区分了内部状态和外部状态。 • 内部状态:可以共享,不会随环境变化而改变 • 外部状态:不可以共享,会随环境变化而改变以围棋的棋子作为示例棋子的大...

2019-07-17 17:26:36 129

原创 Java组合模式

组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式,它是一种对象结构型模式。如果有需求要表示整体和部分的关系,那就使用组合模式:就以文件白遍历来说:文件夹和文件都属于文件:那么我们先定义抽象的文件:public interface...

2019-07-17 15:32:29 151

原创 Java桥接模式

我们都使用过JDBC,JDBC就使用的是桥接模式。DriverManager无论传入的是什么类型的Driver都能通过传入的Driver获取数据库的连接。实际上桥接模式就是把抽象部分和实现部分分离,是的他们都能独立的变化我们就以销售员卖产品为例:销售的是产品,必定要有产品类public interface Production { void beProducted();...

2019-07-17 12:35:29 131

原创 Java装饰器模式

Java的装饰器模式是结构型模式的一种,目的是增强被装饰类的功能,在JDK中,IO就使用了装饰器模式。下面是代码:人的接口:public interface Human { void run();}男人:public class Man implements Human { @Override public void run() { ...

2019-07-17 11:38:59 225 2

原创 Java适配器模式

适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。下面是实例代码:首先是需要适配的源/** * 需要适配的源 */public class Adaptee { public void method2(){ System.out.pri...

2019-07-17 11:17:25 293

原创 Java门面模式

很多的情况下,我们调用第三方的工具的时候,我们并不需要知道某一个方法是怎么运行的或者具体是怎么实现的,实际上,调用者不需要知道被调用方的具体实现,这就是门面模式。假象一下,我们开一辆车,如果我们要手动的去打开车盖去启动引擎,然后手动的安上传动轴,然后让引擎的动力传向轮胎,使得轮胎转动,如果我们真的像上面那样操作,那我们开一次车会累成狗。所以我们引入了“自动化”的概念,把车变为一个只要启动命...

2019-07-17 10:24:59 415

原创 Springboot整合JSP---很坑页面路劲很让人纠结

Springboot整合JSP很纠结上代码: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" ...

2019-07-16 23:05:28 212

原创 Springboot整合freemaker模板引擎

模板引擎有很多,其实就是动态页面静态化,好让百度这样的搜索引擎搜索到那Springboot怎么整合模板引擎呢步骤如下:首先添加maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www....

2019-07-16 11:24:11 231

原创 Springboot全局异常拦截

在写接口的时候,我们程序出问题的时候,我们总是需要大量的try catch,catch代码块里总是处理各种的异常。为了减少所写的代码,SpringBoot为我们提供了一个全局的异常处理下面是代码示例:首先是pom.xml的配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven....

2019-07-15 22:25:40 442

原创 Java构建者模式

当我们要是使用一个复杂的对象(构造起来相当的麻烦)的时候,我们希望不要去关心这个对象是怎么被构建的,那么我们就要使用构建者模式,把使用和构建的工作分开。角色分析:1. 抽象的构建者2. 被构建者3. 具体的构建者以构建一辆车为例:首先我们需要定义规范,定义一样汽车如何构建:public interface CarBuilder { void buildEng...

2019-07-11 17:21:15 439

原创 Java抽象工厂模式详解

工厂方法模式有一个缺点,他的一个工厂只能生产一种产品,那么要解决工厂类爆炸,我们就引入的产品族的概念,产品族就是把产品分类,比如:大众的汽车厂只能生产大众的轮子、底盘、引擎奔驰的汽车厂只能生产奔驰的轮子、底盘、引擎轮子、底盘、引擎分别就属于不同的产品族(轮子族、底盘族、引擎族)抽象工厂的模式角色分析:1. 抽象的各种产品族(产品接口)2. 集成各种产品族的具体实现类(具体...

2019-07-11 16:54:21 175

原创 Java实现工厂方法模式,以及对工厂方法模式的见解

工厂方法模式和简单工厂一样是一个很简单易懂的模式,简单工厂是传入不同的参数来获取想要的对象,工厂方法模式就是,一类或者一个产品有一个专门的工厂。工厂方法模式的角色:1. 抽象的产品接口2. 抽象的工厂接口3. 具体产品4. 生产具体产品的工厂下面上代码,以生产汽车为例,我们要分别生产奔驰汽车和大众汽车:汽车接口:public interface Car { ...

2019-07-11 15:37:08 241

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除