自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring容器中遇到的NullPointerException异常

今天遇到了一个NullPointerException,报错的代码行如下:List<User> list =adminService.searchByObjectId(objectId);报错信息如下:java.lang.NullPointerException at net.gddx.door.service.Sample.messageArrived(Sample...

2018-08-18 21:22:48 2771

原创 基于spring-data-redis的redis缓存的Serive实现(代码记录)

这个只是一次代码记录,是redies的Service层实现public class RedisCacheServiceImpl implements RedisCacheService { @Autowired public RedisTemplate<String, Object> redisTemplate; public ValueOperations<St...

2018-08-16 09:48:31 431

原创 使用阿里云服务器发送邮件

今天在线上配置数据库服务,在本机测试的时候写了一个当检测到MySQL宕机的时候会发送一封邮件到指定的账户提醒,部署到阿里云之后其他一切正常,就是邮件发送不成功,折腾了我一天原来是因为国家政策,为了防止疯狂发送垃圾邮件,阿里云关闭了25端口(安全组无法开启25端口),而我在本机测试的时候是直接使用Linux自带的发送邮件功能,指令如下:echo "`date` mysql is stop" ...

2018-08-02 14:07:40 4688

原创 mysql主主同步的配置

主主同步事实上就是在主从的基础上,将原先的从机当主机,主机当从机再配置一遍主从同步,具体操作如下: 注意:配置过程中个人使用的指令所需要的权限比较高,主要是因为个人习惯了用root账户操作,如果使用自己创建的账户(输入指令时是‘$’ 而非‘#’,‘#’表示系统账户)可能会说权限不足,请自行切换到root用户或使用可执行的其他等效指令 1.在阿里云数据库1的my.cnf的mysqld...

2018-07-30 11:35:08 22242 1

原创 使用nginx配置mysql负载均衡

这段时间初步了解了一点nginx,主要时因为在公司上班我老大要我配置使用,果然工作还是非常有助于学习的。关于nginx的安装我就不多说了,网上一搜一大把需要注意的是,nginx在1.9版本之前是只能配置http协议的,不接受tcp协议的代理,所以nginx最常见的功能是服务器的负载均衡配置,大致流程如下:以TONCAT 的web服务器举例:Nginx的作用主要就是分发请求,减少...

2018-07-30 10:49:27 18406 2

原创 框架整合之SSM——Spring、SpringMVC、Mybaits

    在前面的博文中,依次介绍了Spring、Spring mvc、Mybaits框架的功能及使用。在之前的博文中都是单独的介绍,尤其是Mybaits框架,在例子中跟本就没有用到其它的框架,这说明了他们的独立性,但反观之前的Mybaits的例子,测试的时候总是要先创建sqlSession,再获取mapper接口的动态代理对象,然后才能调用mapper对象的方法,而这些代码都是必须且重复的,十分的...

2018-05-06 22:28:06 462

原创 Mybaits基础学习(六)——方便的mapper代理开发模式

    使用Mybaits进行开发时,常见的有这几种开发方式——注释开发,原始dao开发方式及Mapper代理开发模式。    关于注解开发,虽然挺常见的,但是使用注解开发有非常致命的缺点——开发后会导致维护升级变得相对困难且为了实现一对一的映射与一对多的映射还是会用到XML文件,那为什么不直接用xml开发,还把接口写的乱七八糟的,而且使用xml比用注释更加容易实现条件不定的查询,最后就是使用xm...

2018-05-05 15:51:49 212

原创 Mybaits基础学习(五)——灵活的动态SQL

    通过Mybaits提供的各种动态标签实现动态拼接sql,使得mapper映射文件在编写SQL时更加灵活,方便。Mybaits3大大精简了元素种类,包括if、choose(when,otherwise)、trim(where,set)、foreach,接下来将对这些标签的意义和使用进行详细的介绍。if和where    if就是条件判断标签,包含有test属性,test是判断条件,where...

2018-05-03 23:21:17 309

原创 Mybaits基础学习(四)——强大的ResultMap

    ResultMap元素是MyBaits中最重要最强大的元素。它可以让你从90%的JDBCResultSets数据提取代码中解放出来,并在一些情形下允许你做一些JDBC不支持的事情。实际上,在对复杂语句进行联合映射的时候,它很可能可以代替数千行的同等功能的代码。ResultMap的设计思想是——简单的语句不需要明确的结果映射,而复杂一点的语句只需要描述它们的关系就行了。以常用的javaBea...

2018-05-02 23:41:44 190

原创 Mybaits基础学习(三)——Mapper 映射文件

    Mybaits与JDBC进行比较的话,你会发现相同功能下,mybaits能够省略到大部分的代码,且使SQL语句不出现在代码程序中,将所有的SQL集中在映射文件中,这将更加有利于未来的功能维护升级,这些正是mybaits的强大之处之一。    Mybaits映射文件只有很少的几个顶级元素:    cacha:给定命名空间的缓存配置。    cacha-ref:其他命名空间缓存配置的引用   ...

2018-05-02 22:04:23 297

原创 Mybatis基础学习(二)—— mybatis全局配置内容

    上文示例中SqlMapConfig.xml配置文件是mybaits的全局配置文件,名称随意,你爱咋地咋地。    Mybatis的全局配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。文档的顶层结构如下:properties属性settings设置typeAliases类型别名objectFactory对象工厂plugins插件en...

2018-04-24 23:56:52 218

原创 Mybatis基础学习(一)—— mybatis入门

Mybatis是什么?    mybaits是一个优秀的持久层框架,它对jdbc操作数据库的过程进行了封装,使开发者只需要关注SQL本身,而不需要花费精力去处理注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁琐的过程代码。    mybatis通过xml或者注解的方式将要执行的各种statement(statement、preparedStateme...

2018-04-14 18:33:37 339

原创 Spring mvc基础学习(五)——使用控制器方法返回视图

    Spring在控制器可以返回的类型是十分灵活的,几乎可以是返回任意类型,但常见为返回视图类型,下面将对返回视图类型着重介绍。    使用显示的视图和试图名称       1.使用重定向视图    使用静态URL字符串构造视图@RequestMapping("dashboard")public Strig dashboard(Map<String,Object> model){...

2018-04-11 23:23:08 687

原创 Spring mvc 基础学习(四)——指定控制器方法参数

    控制器方法可以有任意数量的不同类型大的参数。Spring 中参数的数目和类型都非常灵活。最简单的方法可以不含参数,而复杂的方法可以有几十个参数甚至更多。Spring可以理解这些参数的目的,并在调用这些参数时提供正确的值。另外,可以通过一些配置扩展Spring理解的参数类型。    1、标准Servlet类型    在需要的时候,Spring可以为方法提供Servlet API相关的众多参数...

2018-03-29 23:52:36 540

原创 Spring mvc 基础学习(三)——@RequestMapping的定义及功能

    RequestMapping直译成中文就是请求映射,通过@RequestMapping可以映射请求、请求的Content-Type或者Acdept头、http请求头、指定请求参数或头是否存在,或者这些信息的任意组合。1.URL限制    @RequestMapping注解将把请求被映射的方法缩小到特定的方法上。可以只在控制器方法中添加@RequestMapping,或者同时在控制器类和它的...

2018-03-29 00:11:51 567

原创 Spingmvc 基础学习(二)—— mvc注解配置

spring mvc常用的还是注解模式,也基本看不到其他模式的使用,所以我也只对注解模式进行介绍。配置web.xml文件:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/x...

2018-03-18 23:00:07 155

原创 Spring mvc 学习(一)—— springmvc基础介绍

首先,什么是MVC(Model-View-Control)?    MVC是一种著名的设计模式,特别是在Web应用程序领域。MVC模式全都是关于将包含业务数据的模块与显示模块的视图解耦的,而一个层次的重定向几乎可以解决计算机业务中的所有问题。在模型(M)和视图(V)之间引入重定向层几乎可以解决所有问题。此重定向层就是控制器(C)。控制器将接收请求,执行更新模型的操作,然后通知视图关于模型更改的消息...

2018-03-18 22:49:03 482

原创 Spring的基础学习(十二)——Spring与Junit的整合

代码承接上一篇博文——spring的事务管理    不得不说,Spring与Junit的整合十分简便,用起来让人感觉很舒服。在开发过程中做测试时推荐常用,尤其是对dao层的测试。首先,pron.xml添加如下代码,导入Junit与spring的整合包<!-- https://mvnrepository.com/artifact/org.springframework/spring-test ...

2018-02-09 16:17:06 161

原创 Spring基础学习(十一)——Spring的事务管理

    首先,什么是事务?    事务就是我们在完成一件事情的过程中所执行的一系列动作,只有所有的动作都成功了,事务才算成功,中间的任何一个动作发生了错误,那么事务就会回滚到什么都没做的状态。比如我们在银行转账的过程,我向某某转账,我的账户要扣钱,然后某某的账户要加钱,只有扣钱和加钱都成功了,事务才算成功,如果我的钱没有扣成功,或者我的钱扣了,但是某某的钱没增加,那么事务都算失败,并且会回滚到我没...

2018-02-09 15:27:27 203

原创 Spring基础学习(十)——JDBCTemplate

JDBCTemplate是spring提供的用于操作JDBC的工具类,类似于J2EE中我们自己写的JDBCUtil,依赖于链接池DataSource,这里我选择阿里的数据库连接池druid,数据库就用常用的MySQL.首先是建表——只做说明,本例是简单的用户之间转账的例子,所以是一个表格,包括有id,username,password,money四列导入jar包,需要在pom.xml文件中

2018-02-05 23:52:07 165

原创 Spring基础学习(九)——基于AspectJ的两种AOP实现方式

AspectJ实现AOP的区别:aop联盟定义通知类型具有特性接口,必须实现相应的接口,从而确定方法名称。  Aspectj 通知类型只定义类型名称以及方法格式,不用实现接口。AspectJ的通知类型:       before:前置通知(应用:各种校验)   在方法执行前执行,如果通知抛出异常,阻止方法运行       afterReturning:后置通知(应用:常规数据处理) 

2018-02-04 23:57:54 343

原创 Spring基础学习(八)——AOP面向切面编程

一、什么是AOP AOP全称为Aspec Oriented Programming,译为面向切面编程。通过预编译方式和运作期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程衍生规型。利用AOP可以对业务逻辑的各个部分进行隔离,使业务各部分的逻辑耦合度降低,大大提高程序的可重用性,同时提高程

2018-02-04 22:22:00 179

原创 Spring基础学习(七)——对bean初始化的加工(BeanPostProcessor)

spring提供了很多扩展接口,其中就包括有BeanPostProcessor,其作用是——当我们在Spring容器中完成bean的实例化、配置以及其他初始化方法前后要添加一些自己的事务处理逻辑时,我们需要定义一个或者多个BeanPosrtProcessor接口实现类,然后注册到Spring容器中。 首先,BeanPostProcessor的说明如下:public interface

2018-02-04 16:01:06 645

原创 spring基础学习(六)——用动态代理实现拦截器

基于JDK动态代理实现拦截器1.目标类接口:package net.seehope.springioc.proxy;public interface Targe { public void sayHallo();}2.目标类:public class TargeImpl implements Targe{ public void sayHallo() {

2018-02-01 21:56:16 843

原创 Spring基础学习(五)——基于JDK和CGlib的两种代理增强模式

一、基于JDK的代理增强 实现原理:  1.通过实现InvocationHandler接口创建自己的代理处理器  2.通过反射机制得到目标类的所有构造方法和接口,并返回代理实例  3.代理对象对目标类的方法进行增强(即添加方法执行前的逻辑和方法执行后的逻辑并返回目标类)特点:JDK动态代理是面向接口的代理模式,基于JDK的环境,无需导入jar包,如果目标对象没有实现

2018-01-28 17:36:53 249

原创 Spring基础学习(四)——DI(依赖注入)

本篇主要介绍Spring框架的DI(依赖注入)机制。事实上,在上一篇的Spring基础学习(三)中所讲的bean的三种实例方式中的实例工厂模式也用到了依赖注入方式。之所以先写bean的实例方式再写依赖是因为我认为这个较为简单,先实际操作后再去理解这个概念可能会有事半功倍的效果。编程嘛,实操是可以很大程度上帮组理解的。l  DI Dependency Injection ,依赖注入   

2018-01-24 22:34:02 184

原创 Spring基础学习(三)——spring的三种实例化方式

基于XML装配Bean的三种方式:默认构造,静态工厂,实例工厂默认构造最为常见,xml配置文件  必须提供默认构造,其中id可以用name代替,二者的区别为多个bean中id只能有一个,不可重复,而name则可以有多个相同。例如:public class UserService { public UserService() { super(); // TODO Auto-g

2018-01-24 22:17:49 305

原创 Spring基础学习(二)——IOC(控制反转)介绍

在进行事例之前,我们需要导入Spring的Jar包,本人是基于Maven开发的,这里也推荐使用,这样就不会把工程文件大小搞地很大,团队开发时也不用把jar包传来传去的,下面简单说明一下Maven导包的过程首先,百度搜索Maven 点击进入界面后搜索Spring,然后点击Spring Context , 我选择了4.3X版本的最新版 ,然后复制代码块:将代码块粘贴到pom

2018-01-24 17:24:39 179

原创 Spring基础学习(一)——Spring介绍

1.Spring框架概述     Spring是一个轻量级的Java开源框架,是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一是其分层结构,分构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring的核心是控制反转(IOC)和面向切面(AOP). 简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

2018-01-23 20:38:38 284

空空如也

空空如也

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

TA关注的人

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