
Spring
文章平均质量分 78
徐刘根
微信关注公众号:Java后端技术(ID:JavaITWork),和20万人一起学习Java!
"Java后端技术"微信公众号专注Java相关技术:SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,偶尔讲点运维Jenkins、Nexus、Docker、ELK,偶尔分享些技术干货,致力于Java全栈开发!
展开
-
Spring控制反转和依赖注入
(1)为什么使用控制反转和依赖注入调用者不用去关心被调用者的实现,不需要调用者亲自创建被调用者的实例,这些操作都交给框架去完成。这种设计思想就是控制反转(Inversion of Control, IoC),同时,它还有另外一个名字就是依赖注入(Dependency Injection, DI)。(2)什么是控制反转和依赖注入控制反转(IoC)是将由程序控制的“对象间的依赖关系原创 2014-10-22 18:21:16 · 5614 阅读 · 2 评论 -
基于Spring AOP和Groovy日志模板配置的日志记录框架的二次实现与使用案例
一、项目地址https://git.oschina.net/xuliugen/ufind-businesslog.git说明:本框架是基于koala-project(项目地址:http://git.oschina.net/openkoala/koala)中的koala-businesslog二次开发,因为koala-project已经很久没有维护,对于一些Maven仓库已经无法使用,Koala在Ec原创 2016-07-29 16:53:37 · 6658 阅读 · 6 评论 -
Spring MVC中带有继承关系或者含有对象的参数请求处理方式
如题意思就是在Spring MVC的路由方法中出现的参数是具有继承关系的,如下:(1)控制器代码如下:(2)QueryUserCond代码如下:(3)QueryBaseCond代码如下:Page是个分页对象,包含了分页用到的起始页、当前页、总页数等信息。(4)QueryUserCond 和 QueryBaseCond继承关系:如何访问该类型接口由Chrome插件Postman执行GET请求的命令如下原创 2017-02-21 17:22:33 · 8613 阅读 · 2 评论 -
Redis实战和核心原理详解(6)使用Spring Session和Redis解决分布式Session跨域共享问题
前言对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash、轮训、根据权重、随机等。不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因此会出现session不同步或者丢失的问题。实际上实现Session共享的方案很多,其中一种常用的就是使用Tomcat、Jetty等服务器提供的Session共享原创 2017-02-26 16:01:19 · 70409 阅读 · 32 评论 -
Redis实战和核心原理详解(7)Spring Session解决分布式Session问题的实现原理
上一篇:使用Spring Session和Redis解决分布式Session跨域共享问题 : http://blog.csdn.net/xlgen157387/article/details/57406162上一篇介绍了如何使用Spring Session和Redis解决分布式Session跨域共享问题,介绍了一个简单的案例,下边就学习一下Spring Session的实现原理。注:以下步骤是基于原创 2017-03-04 11:48:06 · 33795 阅读 · 11 评论 -
Spring Boot和Spring Cloud学习资源推荐
比较好的学习资源,分享一下。1、Spring Boot官方文档:http://projects.spring.io/spring-boot/2、Spring Cloud官方文档:http://projects.spring.io/spring-cloud/Spring Boot学习地址1、GitOS项目有代码地址:http://git.oschina.net/didispa...原创 2017-07-23 17:51:53 · 10784 阅读 · 28 评论 -
Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?
上一篇:Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring? 上一篇从Web开发演进过程的一个侧面简述了一下为什么会有Spring?事实上只介绍了为什么会有Spring IOC(控制反转/依赖注入)以及Spring IOC的雏形。我们都知道Spring的两个核心知识点是:IOC和AOP。因此,这一篇还是以Web开发演进过程为线索继续探讨一下为什么会有Spring原创 2017-12-25 14:33:23 · 10760 阅读 · 3 评论 -
Spring核心技术原理-(3)-Spring历史版本变迁和如今的生态帝国
前几篇:Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?Spring核心技术原理-(2)-通过Web开发演进过程了解一下为什么要有Spring AOP?前两篇从Web开发史的角度介绍了我们在开发的时候遇到的一个个坑,然后一步步衍生出Spring Ioc和Spring AOP的概念雏形。Spring从2004年第一个正式版1.0 Final Released发展原创 2017-12-27 13:09:29 · 4959 阅读 · 1 评论 -
面试必备技能:JDK动态代理给Spring事务埋下的坑!
一、场景分析最近做项目遇到了一个很奇怪的问题,大致的业务场景是这样的:我们首先设定两个事务,事务parent和事务child,在Controller里边同时调用这两个方法,示例代码如下:1、场景A:@RestController@RequestMapping(value = "/test")public class OrderController { @Autowir...原创 2018-01-10 21:38:38 · 12294 阅读 · 13 评论 -
Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?
一、知史可以明鉴我们学习技术的时代赶上了最好的时代,跳过了很多前人经常踩的坑,前人在踩坑的过程中总结了很多经验和教训,而新时代的我们只是继承了前人的经验和教训,而忽略了这些采坑的过程,以至于我们面对很多新技术都不知道他是什么?他为什么存在?他为什么可以解决这个问题?更不知道如何掌握其原理!云里雾里一头雾水!交流群的很多小伙伴,常常私聊我让我推荐一下学习SSM框架的视频和资料,我首先会打开他原创 2017-12-24 11:06:58 · 41635 阅读 · 7 评论 -
Spring核心技术原理-(4)-三条路线告诉你如何掌握Spring IoC容器的核心原理
IoC(控制反转,英文含义:Inverse of Control)是Spring容器的内核,AOP、事务等功能都是建立在此基础上的。从字面意思上可以把IoC拆分为两层含义:**控制和反转**。控制可以理解为是接口实现类的选择权,反转可以理解为这个选择权交给第三方进行管理;总的来说就是某一接口具体实现类的选择控制权从调用类中移除,转交给第三方进行决定,即由Spring容器通过Bean配置来进行控制,这样的话应用程序本身原创 2018-01-04 21:35:15 · 8795 阅读 · 2 评论 -
Spring AOP中的JDK和CGLib动态代理哪个效率更高?
一、背景今天有小伙伴面试的时候被问到:Spring AOP中JDK 和 CGLib动态代理哪个效率更高?二、基本概念首先,我们知道Spring AOP的底层实现有两种方式:一种是JDK动态代理,另一种是CGLib的方式。自Java 1.3以后,Java提供了动态代理技术,允许开发者在运行期创建接口的代理实例,后来这项技术被用到了Spring的很多地方。JDK动态代理主要涉及...原创 2018-09-07 16:52:54 · 54371 阅读 · 28 评论 -
Cannot subclass final class class com.sun.proxy.$Proxy16
背景这个错误是我在使用AOP动态切换数据库,实现数据库的读写分离的时候出现的问题,使用到的系统环境是:<spring.version>3.2.6.RELEASE</spring.version><mybatis.version>3.2.4</mybatis.version><mybatis-spring.version>1.1.1</mybatis-spring.version>使用的代码执行切原创 2016-05-04 19:10:58 · 32199 阅读 · 3 评论 -
Spring各种依赖注入注解的区别
Spring对于Bean的依赖注入,支持多种注解方式:@Resourcejavax.annotationJSR250 (Common Annotations for Java)@Injectjavax.injectJSR330 (Dependency Injection for Java)@Autowiredorg.springframework.bean.factorySpring直观转载 2016-03-20 16:18:43 · 13234 阅读 · 1 评论 -
SpringMail使用过程中的报错
1、Unable to locate provider for protocol: smtp –>缺少依赖造成的<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <de原创 2016-02-21 15:16:18 · 5499 阅读 · 0 评论 -
springMVC框架搭建流程
1、创建Dynamic Web Project2、导入spring和springmvc所需要的文件3、配置web.xml文件3.1 监听spring上下文容器3.2 加载spring的xml文件到spring的上下文容器(spring-context.xml)3.3 配置spring MVC的DispatcherServlet3.4 加载spring原创 2014-10-24 21:56:14 · 4105 阅读 · 0 评论 -
Spring中三种获取ApplicationContext的方法
package com.lc.ioc;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class App1 { public static void main(S原创 2014-10-16 14:47:20 · 3780 阅读 · 0 评论 -
Spring学习之Bean详解
一、理解反向控制(IOC)原创 2014-10-16 15:07:05 · 5253 阅读 · 1 评论 -
Spring中继承配置的注入方法
(1)两个java类,一个父类一个字类package com.lc.inherit;/* * 这里是父类 */public class Student { protected String name; protected int age; public String getName() { //get/set方法}package com.lc.inherit;/原创 2014-10-21 19:51:21 · 4267 阅读 · 2 评论 -
Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件
(1)下边的一个java类包含了所有Map、Set、List、数组、属性集合等这些容器,主要用于演示Spring的注入配置;package com.lc.collection;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;public clas原创 2014-10-21 19:37:45 · 76623 阅读 · 4 评论 -
Spring获取ApplicationContext对象工具类
(1)实现的工具类:package com.util;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;final public class ApplicationContex原创 2014-11-24 15:46:19 · 3276 阅读 · 0 评论 -
Spring的核心机制:依赖注入
对于一般的Java项目,他们都或多或少有一种依赖型的关系,也就是由一些互相协作的对象构成的。Spring把这种互相协作的关系称为依赖关系。如A组件调用B组件的方法,可称A组件依赖于B组件,依赖注入让Spring的Bean以配置文件组织在一起,而不是以硬编码的方式耦合在一起一、理解依赖注入依赖注入(Dependency Injection) = 控制反转(Inversion ofCo原创 2014-11-24 15:36:41 · 3859 阅读 · 0 评论 -
Spring框架分为哪七大模块
Spring框架的七大模块1. Spring Core:Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。2.Spring Context:构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI原创 2015-04-26 19:02:08 · 36854 阅读 · 11 评论 -
Spring配置文件元素<context:property-placeholder location="classpath:application.properties" />
<context:property-placeholder location="classpath*:*.properties" ignore-unresolvable="true"/>1.有些参数在某些阶段中是常量 比如:a、在开发阶段我们连接数据库时的连接url,username,password,driverClas原创 2015-07-11 13:17:56 · 12683 阅读 · 2 评论 -
<context:component-scan>的使用说明
在Spring框架中有这样一个标签元素:<context:component-scan base-package="com.qunar.flight.interb2b.dubbodemo.task"/>这个标签的意思就是: 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件, 如果扫描到有@Component @Controller@Service原创 2015-07-14 11:40:38 · 4127 阅读 · 0 评论 -
Spring依赖注入的三种方式
Spring依赖注入(DI)的三种方式,分别为:1. 接口注入 2. Setter方法注入 3. 构造方法注入下面介绍一下这三种依赖注入在Spring中是怎么样实现的。首先我们需要以下几个类:接口 Logic.java接口实现类 LogicImpl.java一个处理类 LoginAction.java还有一个测试类 TestMain.javaLogic.java如下:package com原创 2015-03-11 11:08:25 · 3394 阅读 · 0 评论 -
Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBe
Error creating bean with name ‘org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0’Caused by: javax.validation.ValidationException: Unable to create a Configuration, because no Be原创 2015-11-12 15:41:20 · 31994 阅读 · 5 评论 -
面试官:谈谈你对SpringAOP的了解?请加上这些内容,绝对加分!
作者:Java架构的傲慢与偏见原文地址:www.toutiao.com/a6695345484485100044一、引言众所周知,一旦提到AOP,相信大家都是条件反射的想到JDK代理和CGLib代理,没错,这两个代理都是在运行时内存中临时生成代理类,故而又称作运行时增强——动态代理。世间万物都不是绝对的,既然有动态代理,那么,是否有想过:是不是存在静态代理呢?二、LTW(Load Time...转载 2019-06-02 11:35:59 · 3389 阅读 · 0 评论