
Spring
spring使用中的点滴记录。
谦奕爸爸
路漫漫其修远兮,吾将上下而求索
-
原创 spring系列之-注解介绍@ConfigurationProperties
@ConfigurationPropertiesspring-boot 提供该注解将配置文件的值映射到类上使用。例子:1,这是我们在application.yml配置的druid连接池学习2.通过@ConfigurationProperties注解则会将值映射到该类中3.通过@Autowired标签即可访问到该对象,不过在使用之前必须在使用类上面增加注解@EnableConfig...2018-11-21 10:16:081945
0
-
原创 spring系列之-使用@Autowired注解,出现提示信息Field injection is not recommended
一、出现提示信息“不推荐使用变量注入方式”如下图。spring团队建议:始终在bean中使用基于构造函数的依赖注入。始终对强制性依赖使用断言。思考:为什么不推荐使用,这种方式是不是有更好的替代方案。于是自己查了一下网上的资料做个总结。二、依赖注入有三种方式:变量(filed)注入 构造器注入 set方法注入变量注入这种方式是我们用的比较多的,下面我们来对比一下这几...2019-12-04 15:11:12302
7
-
原创 spring系列之-个人常用配置文件解析
1、configuration.xml文件常用代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&g...2016-04-26 19:19:115197
0
-
原创 springmvc框架系列之-整合文件配置详解
web.xml的配置web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配...2016-03-10 17:22:37448
0
-
转载 当spring 容器初始化完成后执行某个方法 防止onApplicationEvent方法被执行两次
在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查。 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数。而在Spring的web项目中,我们可以介入Spring的启动过程。我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现...2018-03-05 09:18:521263
0
-
转载 分布式事务atomikos
上一篇介绍了分库分表插件,但是多库操作涉及到分布式事务问题,大家都知道分布式事务需要涉及到数据库XA驱动,oracle原本就支持,mysql在5.6版本支持了该属性,atomikos插件封装了该特性的一个中间件。现在来介绍一个atomikos的使用。 首先是jar包依赖,maven配置如下:Xml代码 <dependency> <groupId>...2018-03-08 10:17:268960
2
-
转载 基于Spring task注解方式配置任务
此文标题有错,感谢各位网友指出 林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 新建一个Java工程,导入要用到的包,Spring3.2、Quartz2.2.1、aopalliance-1.0.jar、commons-logging-1.2.jar。整个工程目录如下:本文工程免费下载12017-12-14 10:38:565054
0
-
转载 Spring注解配置定时任务<task:annotation-driven/>
首先在配置文件头部的必须要有:xmlns:task="http://www.springframework.org/schema/task"其次xsi:schemaLocation必须为其添加:http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-tas2017-12-14 10:34:18639
0
-
转载 spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
在前面的文章中总结了spring事务的5中配置方式,但是很多方式都不用而且当时的配置使用的所有参数都是默认的参数,这篇文章就看常用的两种事务配置方式并信息配置事务的传播性、隔离级别、以及超时等问题,废话不说下面就来看看!一、注解式事务1、注解式事务在平时的开发中使用的挺多,工作的两个公司中看到很多项目使用了这种方式,下面看看具体的配置demo。2、事务配置实例(1)、spring+2017-11-24 15:08:17517
0
-
转载 Motan 调用执行流程
大概的示意图:2017-11-20 16:04:411350
0
-
原创 RequestMapping获取class路径以及方法method路径
得到处理类HandlerMethod headMethod = (HandlerMethod) handler;得到类路径RequestMapping mapping = headMethod.getMethod().getDeclaringClass().getAnnotation(RequestMapping.class);String[] classUrl = nu2017-11-13 09:14:332510
0
-
原创 http系列之-核心内容
一、HTTP Request Method二、HTPP请求结构2018-04-10 09:21:433581
0
-
转载 Spring.profile实现开发、测试和生产环境的配置和切换
软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等。为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spring的profile功能来进行配置参数的切换。以我用到的项目的实际情况为例,首先可以在resources文件夹下分别为每个环境建立单独的文件夹(也可以额外建立一个common文件夹,用于存放公共的...2018-08-14 15:32:16304
0
-
原创 spring系列之-事务注解@Transactional注意事项
生产系统核心部分特别是涉及到账户的批量处理,放在凌晨定时运行,结果出问题了,现象很诡异:1)问题偶发,但没有规律2)程序没有按照预定步骤处理数据库相关数据3)发生后也没有发现有死锁,但出现异常的锁前后折腾了三次,但一直没有找到根源。后来另外一个问题发生时,分析发现数据库事务处理形同虚设,用Spring @Transactional注解的数据库事务完全没有生效,让人费解,甚至怀...2019-02-15 16:55:26513
0
-
原创 spring系列之-@validated 验证 List 参数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010588262/article/details/82776088写了个接口:@GetMapping("/do")public int doSth(@RequestBody @Validated(MyGroup.class) List<Bean> myBean)发现@val...2018-12-19 10:40:572321
0
-
原创 java系列之-自定义valid校验器
一、依赖包<!-- https://mvnrepository.com/artifact/javax.validation/validation-api --><dependency> <groupId>javax.validation</groupId> <artifactId>validation-api<...2018-12-27 11:45:361544
1
-
原创 java系列之-自定义注解进行数据验证
API开发中经常会遇到一些对请求数据进行验证的情况,这时候如果使用注解就有两个好处,一是验证逻辑和业务逻辑分离,代码清晰,二是验证逻辑可以轻松复用,只需要在要验证的地方加上注解就可以。Java提供了一些基本的验证注解,比如@NotNull、@Size,但是更多情况下需要自定义验证逻辑,这时候就可以自己实现一个验证注解,方法很简单,仅需要两个东西:一个自定义的注解,并且指定验证器 一个验证...2018-12-19 20:57:54356
0
-
转载 切点、切面:@Aspect、@PointCut相关的个人总结
最近写的项目里面都用到了很多切面,切点的知识,写完以后,来自我总结一下:举个例子:一个类(Show)里面有一个表演(display)的方法,在表演之前,应该有致辞(say)的方法,在表演之后,应该有鼓掌(hand)的方法。为了高内聚低耦合,表演的方法应该单独封装在一个类里面,致辞和鼓掌的方法应该另外封装,但在调用时必须按照顺序来调用执行。这时候就需要设置切面和切点了!切面应该设置在致辞...2018-11-22 15:58:21530
0
-
转载 maven与springMVC之HttpMessageConverter解析json
首先来看一下下面的配置代码:[html] view plain copy bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> property name="messageConverters"> l2017-10-11 15:23:00826
0
-
转载 springmvc配置MappingJackson2HttpMessageConverter实现属性驼峰和下划线的转换
v需求 php调用java接口时,因为php那边的属性都是下划线风格,java这边的属性都是驼峰的风格。配置springmvc的json转换,在requestBody的时候(调用对象的set 方法)将java属性name映射成下划线形式 和 请求的参数匹配;在responseBody的时候(调用对象的get方法)将java的属性name也映射成下划线形式。vMappingJackson22017-10-11 15:15:044886
1
-
转载 SpringMVC关于json、xml自动转换的原理研究[附带源码分析]
目录前言现象源码分析实例讲解关于配置总结参考资料前言SpringMVC是目前主流的Web MVC框架之一。 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html现象本文使用的demo基于maven,是根据入门blog的例子继续写下去的。我们2017-10-11 15:07:46257
0
-
转载 Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能2017-07-05 09:52:12217
0
-
转载 【Spring MVC】教程——使用拦截器实现权限控制
之前一直都在用mvc的拦截器权限控制,后来上网也研究了一些这方面的知识,下面就直接分享下我对mvc的拦截器的理解,通过项目来分析吧。。。1、首先准备对应的架包2、看看项目的架构3、基本的web.xml文件?12345678910111213141516171819202017-07-05 09:30:422114
0
-
转载 LOG4J配置详解及样例一个
网站要发布了,为了跟踪一些日志,需要用到log4j,于是就研究了一下log4j的配置先贴自己用的一个配置源文件 log4j.properties[html] view plain copy log4j.rootLogger=DEBUG, CONSOLE, FILE ## for console log4j.appender.CONSOLE=org.apach2017-06-12 21:58:58212
0
-
转载 09 转 备忘-按日期、时间或大小生成log文件的log4j配置方案
from:http://blog.sina.com.cn/s/blog_543e73a80100o757.html我们开发的B/S结构系统,在服务端一般要有日常运行的日志记录。保存成日志文件形式的时候,大家经常会遇到一个问题:日志文件过大。上百兆的日志文件对 查阅日志信息来说也是一个问题。所以我希望能够每天或每个月产生一个日志文件,这样文件不至于过大。 或者根据日志文件大小来判断,超过规定大小2017-06-12 13:23:35432
0
-
转载 spring(基础10) 注解@Value详解
一 配置方式@value需要参数,这里参数可以是两种形式:[html] view plain copy @Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}"); 这两形式,在配置上有什么区别:1、@Value("#{configProperties['t1.msg2017-06-09 15:26:541377
0
-
原创 java系列之-ClassPathXmlApplicationContext加载多个XML文件
用如下数组的形式就可以了。public static void main(String[] args) throws IOException { ApplicationContext ctx = new ClassPathXmlApplicationContext( new String[]{"MultithreadTaskBeans.xml", "comm...2017-06-02 11:41:303790
0
-
原创 spring系列之-DailyRollingFileAppender的使用
DailyRollingFileAppender是日志记录软件包Log4J中的一个Appender,它能够按一定的频度滚动日志记录文件。如果您不熟悉Log4J,建议阅读一下 使用Log4j进行日志记录。我们可以按下面的方式配置DailyRollingFileAppender:log4j.rootCategory=INFO,filelog4j.appender.file=org.a...2017-06-16 09:10:151316
0
-
转载 SpringMVC 支持Hibernate Validator
摘要 :这段时间看公司的代码都是代码中对数据进行显性的验证,在业务逻辑中混杂了太多的数据校验的代码,感觉各种不舒服,正好趁今天有些空闲,就将SpringMVC整合了下Hibernate Validator。现在记录下整合过程,过程以便以后参考!一、基础框架 SpringMVC-4.0.3.RELEASE,使用的maven来管理jar依赖二、依赖的jar, org.hi2016-03-12 10:04:501558
0
-
原创 springmvc+datatables+mybatis分页
1.分页封装类import java.util.HashMap;import java.util.List;import java.util.Map;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import org.apache.commons.lang.StringUtils;import or...2015-11-07 16:43:074270
11
-
转载 【spring配置】——spring整合Quartz定时器
第一种:为普通java类中的某个方法配置跑批任务[java] view plain copy MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定义要跑批的类和方法:[java] view plain copy packag2017-05-31 18:17:05377
0
-
转载 spring的quartz学习总结:cluster配置
简介 在前面一篇文章里我们讨论了quartz和spring quartz的基本流程以及配置,这里针对一些quartz应用的场景和配置重点解读一下quartz的cluster配置和应用。 cluster配置 在前面的执行quartz任务的环境里,我们都是在单独的一台机器上执行任务。这种单点执行的方式存在着一些问题。比如说,如果需要执行的任务量比较大,单台机器处理不过来。另2017-05-30 10:43:201141
0
-
转载 Spring中Quartz的配置
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写一个被调度的类:package com.kay.quartz;public class QuartzJob{ public void work() { System.out.println("Quartz的任务调度!2017-05-25 23:11:18246
0
-
转载 Springmvc前端JSON转换器MappingJackson2HttpMessageConverter设置对值为null的处理
我们在使用springmvc中的 @ResponseBody 注解返回JSON时可以配置Json转换器如下:[java] view plain copy "mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2017-10-10 17:01:391787
0
-
转载 Springmvc异常之--通配符的匹配很全面, 但无法找到元素 'mvc:resources' 的声明
aused by: org.xml.sax.SAXParseException; lineNumber: 24; columnNumber: 60; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'mvc:resources' 的声明。at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrappe2017-10-10 14:59:513061
0
-
转载 SpringMVC 拦截器不拦截静态资源的三种处理方式
SpringMVC提供来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决:方案一、拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml)2017-09-01 10:07:17729
0
-
原创 spring系列之-SpringMvc中Interceptor拦截器用法
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆等。 一. 使用场景 1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录...2017-09-01 09:59:44242
0
-
转载 注解@PostConstruct与@PreDestroy详解及实例
简介Java EE5 引入了@PostConstruct和@PreDestroy这两个作用于Servlet生命周期的注解,实现Bean初始化之前和销毁之前的自定义操作。此文主要说明@PostConstruct。API使用说明以下为@PostConstruct的API使用说明:PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须2017-09-07 17:47:41358
0
-
转载 spring国际化问题
程序中的国际化问题也是一个非常重要的部分,好多的软件都支持国际化,不同的版本对应不同的语言。在进行国际化时,依照程序开发习惯,我们一般选择在页面层或者控制层做国际化处理,业务层和DAO层不要去国际化,在业务层或者DAo层只需设定国际化的key值即可,当然,key值尽量具有意义。目前,spring提供了好多国际化的方式,例如AcceptHeaderLocaleResolver,session及c2017-08-24 10:48:03512
0
-
原创 spring特性之-aop拦截
1.后台代码拦截器package com.usedcar.filter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.http.NameValu...2016-01-16 14:52:17438
0