09 2018 档案

摘要:在调试我的maven项目的过程种,当我执行maven install时总提示找不到mapper.xml文件,看了一下大家的说法,都说是maven没有把src/main/java下的mapper包记载到classpath种,可以通过修改maven配置文件pom.xml的方式解决,就是将src/main 阅读全文
posted @ 2018-09-30 15:30 bug改了我 阅读(3335) 评论(0) 推荐(0)
摘要:上一篇文章中已经介绍,MapperScannerConfigurer可以通过扫描的方式获取我们需要的mapper,而不需要我们自己去配置,它的基本配置如下: 配置属性的意义已在注释中说明,需要注意的是如果要使用SqlSessionFactory,就要注释掉属性sqlSessionTemplateBe 阅读全文
posted @ 2018-09-30 15:02 bug改了我 阅读(1664) 评论(0) 推荐(0)
摘要:上一篇文章中提到,使用SqlSessionTemplat时需要输入一长串字符串来获取mapper,这种方式IDE不会检查程序的准确性并且很容易出错,所以这篇文章介绍另一种可以避免这种问题,并且也可以使用SqlSessionTemplate的配置方式,那就是MyBatis-Spring团队提供的Map 阅读全文
posted @ 2018-09-30 13:57 bug改了我 阅读(1625) 评论(0) 推荐(0)
摘要:前一篇文章我总结了一下MyBatis-Spring项目使用SqlSessionTemplate配置的用法,其实在测试过程中并不是一帆风顺,遇到了很多的问题,最主要的就是Mapped Statements collection does not contain value for...这个异常信息,具 阅读全文
posted @ 2018-09-30 12:57 bug改了我 阅读(26923) 评论(1) 推荐(1)
摘要:SqlSessionTemplate是个线称安全的类,每运行一个SqlSessionTemplate时,它就会重新获取一个新的SqlSession,所以每个方法都有一个独立的SqlSession,这意味着它是线称安全的。 上一篇文章已经介绍过MyBatis-Spring项目的搭建过程,本节按照前面介 阅读全文
posted @ 2018-09-30 12:56 bug改了我 阅读(39969) 评论(4) 推荐(0)
摘要:MyBatis-Spring项目不是Sring项目的子框架,而是由MyBatis社区开发的,所以在使用之前首先要导入mybatis-spring包,我是通过maven添加的依赖: 配置MyBatis-Spring项目的步骤: 配置数据源 配置SqlSessionFactory。可以选择的配置有Sql 阅读全文
posted @ 2018-09-30 12:56 bug改了我 阅读(499) 评论(0) 推荐(0)
摘要:本文介绍通过XML方式实现Spring AOP,在上一篇中已经介绍了通过注解+java配置的方式,这篇文章主要是看XML中怎么配置,直接上代码了: 一、创建一个连接点 1⃣️定义接口 注意⚠️:可以定义接口,也可以不定义,定义接口时使用jdk动态代理,不定义接口时使用cglib动态代理; 2⃣️接口 阅读全文
posted @ 2018-09-29 12:18 bug改了我 阅读(525) 评论(0) 推荐(0)
摘要:本文介绍通过注解@AspectJ实现Spring AOP,这里要重点说明一下这种方式实现时所需的包,因为Aspect是第三方提供的,不包含在spring中,所以不能只导入spring-aop的包,为了安全起见我导入的包有(我是maven方式添加依赖): 步骤如下: 一、创建连接点 spring是方法 阅读全文
posted @ 2018-09-29 11:42 bug改了我 阅读(1062) 评论(0) 推荐(0)
摘要:AOP(Aspect Oriented Programing),意为面向切面编程,其实看了很多书本的介绍和说明,我觉得这些解释都太过书面,也可能是翻译的原因,总觉得还是不太懂,也难以理解这种叫法,尤其是这个切面。其实切面在数学中指的是“和球面只有一个交点的平面”,我猜测spring团队之所以这么起名 阅读全文
posted @ 2018-09-28 23:35 bug改了我 阅读(768) 评论(0) 推荐(0)
摘要:spring中的配置文件有两种: 以XML结尾的spring配置文件 以properties结尾的属性配置文件 在spring中有两种方式加载这两种文件: 通过注解+java配置的方式 通过XML的方式 详细配置且看下文: 一、加载spring配置文件*.xml 假设有一个关于数据源的配置文件spr 阅读全文
posted @ 2018-09-27 23:51 bug改了我 阅读(1258) 评论(0) 推荐(0)
摘要:在spring ioc容器中,spring要先完成bean的定义和生成,然后需要需要注入的资源,在上一篇的扫描组件中就是这样实现的。而自动装配中我们只需要定义和生成一个bean,发现bean的过程将由spring自己完成,它是怎么发现的呢?答案是通过注解@Autowired,这个单词的意思就是自动装 阅读全文
posted @ 2018-09-27 20:34 bug改了我 阅读(1333) 评论(0) 推荐(0)
摘要:前两篇文章我总结了通过XML方式装配bean的实现方式,虽然比较简单,但是需要配置很多,很多时候我们都会使用注解进行装配。使用注解的方式可以减少XML的配置,既能实现XML的功能,还提供了自动装配功能,更加有利于开发,这就是传说中的“约定优于配置”原则,简称CoC(Convention over C 阅读全文
posted @ 2018-09-27 17:43 bug改了我 阅读(727) 评论(0) 推荐(0)
摘要:前一篇文章中已经介绍了XML方式装配bean的方式,本文将综合这些方式举一个实例并进行测试,我会把所有类型的参数都放在同一个类中进行测试,下面是我的类结构: 上图是我画的一个基本结构,可以看出该类中有基本类型变量、引用变量、属性变量、集合变量且集合元素有基本类型和引用类型,我的引用类型中所有变量使用 阅读全文
posted @ 2018-09-27 14:58 bug改了我 阅读(458) 评论(0) 推荐(0)
摘要:装配SpringBean,我理解的意思就在容器中定义一个bean,然后让容器通过某种方式找到它。因为在Spring中一切皆资源,资源就是所谓的bean,我们怎么才能从容器中获取这些资源呢?那就是控制反转Ioc(Inversion of Control)虽然我们不需要知道容器是怎么帮我们创建这些bea 阅读全文
posted @ 2018-09-27 13:42 bug改了我 阅读(332) 评论(0) 推荐(0)
摘要:所谓依赖注入,我觉得说白了其实就是给成员变量赋值,不管这个成员变量是基本类型还是引用类型,Spring中常用的依赖注入方式有两种: 1、构造器注入 2、setter注入 下面通过代码实例说明这两种注入的实现方式。 一、构造器注入 1、构造注入的原理 构造注入是利用类的构造方法,大部分情况下我们是通过 阅读全文
posted @ 2018-09-26 23:50 bug改了我 阅读(428) 评论(0) 推荐(0)
摘要:在mybatis映射器的接口中,一般在查询时需要传递一些参数作为查询条件,有时候是一个,有时候是多个。当只有一个参数时,我们只要在sql中使用接口中的参数名称即可,但是如果是多个呢,就不能直接用参数名称了,mybatis中有以下四种 第一种:使用map传递 1⃣️定义接口 2⃣️sql语句 需要注意 阅读全文
posted @ 2018-09-19 23:19 bug改了我 阅读(1537) 评论(0) 推荐(0)
摘要:映射器是MyBatis中最复杂、最核心的组件,本文先介绍映射器的引入方法,其他的在我日后会再做分析和总结。 之前的文章中有提到过,映射器是由一个接口和一个XML配置文件组成,XML文件中需要定义一个命名空间namespace,它的值就是接口对应的全路径。 如我定义一个根据ID查询产品的映射器,需要以 阅读全文
posted @ 2018-09-19 19:29 bug改了我 阅读(1930) 评论(0) 推荐(0)
摘要:databaseIdProvider元素主要是为了支持不同厂商的数据库,比如有时候我们在公司内部开发使用的数据库都是PG(Postgresql),但是客户要求使用MySql,那就麻烦了是吧?其实在mybatis中我们可以使用databaseIdProvider这个元素实现数据库兼容不同厂商,即配置多 阅读全文
posted @ 2018-09-19 19:09 bug改了我 阅读(9431) 评论(1) 推荐(0)
摘要:一、environments配置信息: environments的作用是用来配置数据库信息,可以配置多个,其有两个可配的子元素,分别是:事务管理器transactionManager和数据源dataSource,先看一下我配置的例子: 配置项说明: 1⃣️environments-default:该 阅读全文
posted @ 2018-09-19 18:06 bug改了我 阅读(5493) 评论(0) 推荐(0)
摘要:我们在使用MyBatis执行查询语句的时候,通常都会有一个返回类型,这个是在mapper文件中给sql增加一个resultType(或resultMap)属性进行控制。resultType和resultMap都能控制返回类型,只要定义了这个配置就能自动返回我想要的结果,于是我就很纳闷这个自动过程的实 阅读全文
posted @ 2018-09-19 12:50 bug改了我 阅读(2369) 评论(0) 推荐(2)
摘要:typeHandlers又叫类型处理器,就像在JDBC中,我们在PreparedStatement中设置预编译sql所需的参数或执行sql后根据结果集ResultSet对象获取得到的数据时,需要将数据库中的类型和java中字段的类型进行转换一样,在MyBatis中使用typeHandler来实现。所 阅读全文
posted @ 2018-09-18 19:00 bug改了我 阅读(9539) 评论(2) 推荐(1)
摘要:因为类的全限定名一般包括包名,显得很长,在使用过程中不是很方便,所以MyBatis中允许我们使用一种简写的方式来代替全限定名,这就是别名。这就相当于我们在玩微信的时候,有些人的昵称很长很难记,怎么办?我们给它加一个备注,方便我们快速识别,但是如果有两个相同的备注名怎么区分到底谁是谁呢,你可能会说通过 阅读全文
posted @ 2018-09-18 11:52 bug改了我 阅读(2210) 评论(0) 推荐(1)
摘要:settings是MyBatis中最复杂的配置,它能影响MyBatis底层的运行,大部分情况下使用默认值,只需要修改一些常用的规则即可。常用规则有自动映射、驼峰命名映射、级联规则、是否启动缓存、执行器类型等。 所有配置可参考MyBatis官方文档:http://www.mybatis.org/myb 阅读全文
posted @ 2018-09-18 10:02 bug改了我 阅读(3159) 评论(0) 推荐(0)
摘要:MyBatis配置文件中有很多配置项,这些配置项分别代表什么,有什么作用,需要理一下了。先通过下面这个例子来看都有哪些配置项 以上就是所有的配置项,需要注意的是配置项的顺序不能颠倒,如果颠倒了它们的顺序,在MyBatis的自启动阶段会发生异常,导致程序无法运行。我会一个一个配置地做一下分析和记录,为 阅读全文
posted @ 2018-09-17 21:06 bug改了我 阅读(8687) 评论(1) 推荐(1)
摘要:有时候虽然我们给项目配置的jdk版本、项目编译版本都一直,但是还是会报如下的错误: Description Resource Path Location Type Java compiler level does not match the version of the installed Java 阅读全文
posted @ 2018-09-15 17:34 bug改了我 阅读(3337) 评论(0) 推荐(0)
摘要:工厂模式是一种创建型模式,它提供了一种新的创建对象的方式,一般情况下我们都习惯用new关键字直接创建对象。有时候会遇到这种情况,我们需要根据具体的场景选择创建什么类型的对象,可能有多种类型都能选择,但一次只能选一种,针对这种对象可以选择性创建的情况工厂模式就显得十分好用了。工厂模式嘛,顾名思义就是一 阅读全文
posted @ 2018-09-14 22:47 bug改了我 阅读(306) 评论(0) 推荐(0)
摘要:观察者模式又称发布-订阅模式,就是观察者通过订阅被观察者,或关注被观察者,从而实时更新观察者的信息。比如我们玩微博的时候,如果关注了一些博主,那么当博主发动态时,在首页微博列表中就会自动更新这些博主发的微博,而不需要我们自己去获取。其中我们(粉丝)就是观察者,博主是被观察者,关注就相当于订阅,订阅之 阅读全文
posted @ 2018-09-14 13:30 bug改了我 阅读(370) 评论(0) 推荐(0)
摘要:在上一节的拦截器中提到,程序的设计者一般会用拦截器替替代动态代理,将动态代理的逻辑隐藏起来,而把拦截器接口提供给开发者,使开发者不需要关系动态代理的具体实现过程,但是有时候需要多个拦截器,而且拦截器之间会相互依赖,比如我们从公司的OA上提交一个请假单的时候,这个请假单会经过直接主管、部门经理、人力资 阅读全文
posted @ 2018-09-14 11:25 bug改了我 阅读(257) 评论(0) 推荐(0)
摘要:在动态代理中,我们知道在代理类中,执行真实对象的方法前后可以增加一些其他的逻辑,这些逻辑并不是真实对象能够实现的方法,比如一个租房的用户希望租一套公寓,但是中介所代理的这个房东并没有可以出租的公寓,那么这时候就需要在出租房屋之前进行一些其他操作了,比如中介拒绝用户的请求或者帮助找其他用户等。对这部分 阅读全文
posted @ 2018-09-13 14:00 bug改了我 阅读(458) 评论(0) 推荐(0)
摘要:代理模式是JAVA设计模式之一,网上设计模式相关的博文铺天盖地,参考它们有助于自己理解,但是所谓“尽信书不如无书”,在参考的同时也要思考其正确性,写博客也是为了记录自己理解知识点的思路历程和心路历程,所以在经过调研、实践之后能把自己所掌握和理解的东西写下来,无论对错,错了只能说明当下的理解不够完整, 阅读全文
posted @ 2018-09-10 14:27 bug改了我 阅读(275) 评论(0) 推荐(0)
摘要:“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。”这是百度百科对JAVA反射的描述,仅凭这句话是没法明白反射的真正含义,所以还需要深入剖析。正如其 阅读全文
posted @ 2018-09-06 22:44 bug改了我 阅读(370) 评论(0) 推荐(0)