spring
bingguang1993
这个作者很懒,什么都没留下…
展开
-
spring事务失效的几种情况
1.在Controller层方法级别加事务 一般都是加在service方法里2.在同一个类中其他方法中 调用(默认是失效的,当然自己通过代理的方式调也可以)3.除public权限之外的其他方法;4.spring的事务默认是对RuntimeException进行回滚,而不继承RuntimeException的不回滚; checked异常...原创 2020-04-27 16:55:09 · 431 阅读 · 0 评论 -
Spring
TOC]前言 一、基础概念 1. JavaBean 2. Bean 3. 传统Javabean与Spring中的bean的区别 4. POJO 二、Spring核心技术 1. IOC(控制反转) 1.1 什么是IOC 1.2 IoC能做什么 1.3 IoC和DI 1.4 IOC底层原理 (降低类之间的耦合度) 1.5 Spring中怎么用 ...转载 2020-04-21 12:45:23 · 165 阅读 · 0 评论 -
spring-aop原理讲解 JDK动态代理和CGLIB动态代理
Spring的两大特性是IOC和AOPIOC负责将对象动态的注入到容器,从而达到一种需要谁就注入谁,什么时候需要就什么时候注入的效果。理解spring的ioc也很重要。但是今天主要来和大家讲讲aop。AOP 广泛应用于处理一些具有横切性质的系统级服务,AOP 的出现是对 OOP 的良好补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于A...转载 2020-04-21 11:22:26 · 545 阅读 · 0 评论 -
Spring的两种动态代理:Jdk和Cglib 的区别和实现
一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP3、如果目...转载 2020-04-20 21:16:24 · 222 阅读 · 0 评论 -
Spring Ioc实现机制——简析
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Anger_Coder/article/details/12706277需要明确一点,任何项目没有了Spring,也依旧能做,那么为什么Spring还会这么火?答案就是Spring的两个特性IoC与AOP,这里需要指出的是...转载 2019-11-06 19:28:12 · 480 阅读 · 0 评论 -
java循环注入的问题
加AOP能解决spring IoC的循环引用么?循环引用是你配置bean的时候,构建方式上出了错。比如,创建A对象的时候,你引用到了B,而创建B对象的时候,你又引用到了A。你仔细检查下你的构造器循环依赖——在采用构造器注入的方式配置bean时,很有可能会产生循环依赖的情况。比如说,一个类A,需要通过构造器注入类B,而类B又需要通过构造器注入类A。如果为类A和B配置的bean被互相注入的话,那...转载 2019-03-30 16:20:41 · 823 阅读 · 0 评论 -
Spring——监听器ContextLoaderListener作用
在启动Web 容器时,自动装配 Spring applicationContext.xml 的配置信息。 因为它实现了ServletContextListener这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener 中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader 来完成...转载 2019-03-07 15:39:41 · 372 阅读 · 0 评论 -
applicationContext.xml 配置文件的存放位置
eb.xml中classpath:和classpath*:有什么区别?classpath:只会到你的class路径中查找找文件;classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.存放位置:1:src下面 需要在web.xml中定义如下:<context-param><param-name>con...转载 2019-03-07 15:24:24 · 3323 阅读 · 0 评论 -
Java Spring AOP用法
Spring AOPJava web 环境搭建Java web 项目搭建Java Spring IOC用法spring提供了两个核心功能,一个是IoC(控制反转),另外一个便是Aop(面向切面编程),IoC有助于应用对象之间的解耦,AOP则可以实现横切关注点(如日志、安全、缓存和事务管理)与他们所影响的对象之间的解耦。1.简介AOP主要包含了通知、切点和连接点等术语,介绍如下 ...转载 2019-03-04 11:37:19 · 125 阅读 · 0 评论 -
Spring AOP @Before @Around @After 等 advice 的执行顺序
用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before、@Around和@After等advice。最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了AOP功能。我使用到了@Before、@Around这两个advice。但在,使用过程中,却对它们的执行顺序并不清楚。为了弄清楚在不同情况下,这些advice到底是以怎么样的一个顺序进行执行的,我作了个...转载 2019-03-04 11:34:56 · 222 阅读 · 0 评论 -
Spring系列之AOP实现的两种方式
AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ)。首先复习下AOP中一些比较重要的概念:Joinpoint(连接点):程序执行时的某个特定的点,在Spring中就是某一个方法的执行 。Pointcut(切点):说的通俗点,spring中AOP的切点就是指一些方法的集合,而这些方法是需要被增强、被代理的。一般都是按照一定的...转载 2019-03-04 09:12:41 · 247 阅读 · 0 评论 -
Spring(4)——面向切面编程(AOP模块)
Spring AOP 简介如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用。AOP 即 Aspect Oriented Program 面向切面编程首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 所谓的周边功能,比如性能...转载 2019-03-04 09:12:31 · 607 阅读 · 0 评论 -
spring中bean配置和bean注入
1 bean与spring容器的关系Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载、实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用。1 bean配置bean配置有三种方法:基于xml配置Bean ...转载 2019-03-01 11:19:25 · 157 阅读 · 0 评论 -
spring中的scope详解
0.思维导图1. scope概论spring中scope是一个非常关键的概念,简单说就是对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式。2.scope历史及分类目前,scope的取值有5种取值:在Spring 2.0之前,有singleton和prototype两种;在Spring 2.0之后,为支持web应用的Applic...转载 2019-03-30 16:22:17 · 393 阅读 · 0 评论 -
Spring容器的初始化过程
1、Spring 容器高层视图Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配号Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。2、内部工作机制该图描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程:1、ResourceLoader从存储介质中加载Spri...转载 2019-03-30 16:27:22 · 846 阅读 · 0 评论 -
@Autowired的使用:推荐对构造函数进行注释
转自:http://www.cnblogs.com/acm-bingzi/p/springAutowired.html@Autowired的使用:推荐对构造函数进行注释 在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下: Spring Team recommends "Always use constructor based dependency ...转载 2019-03-30 16:29:08 · 459 阅读 · 0 评论 -
jdk动态代理和cglib动态代理
2、CountImpl.java package net.battier.dao.impl; import net.battier.dao.Count; /** * 委托类(包含业务逻辑) * * @author Administrator * */ public...转载 2019-05-28 17:44:16 · 119 阅读 · 0 评论 -
Java动态代理InvocationHandler和Proxy学习笔记
java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invo...转载 2019-05-28 15:02:58 · 150 阅读 · 0 评论 -
DBCP数据源 和c3p0
Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。DBCP数据源DBCP类包位于/lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池,所以在类路径下还必须包...转载 2019-05-10 16:08:58 · 308 阅读 · 0 评论 -
“context:include-filter”与“context:exclude-filter”标签作用解释
注意到spring中<context:component-scan>标签中会出现include和exclude的子标签,具体是做什么用的?spring的配置文件与springmvc的配置文件分开加载,在spring容器初始化的时候,会先加载(web.xml)<context-param>中的配置,之后再加载<servlet>中的<init-param&...转载 2019-05-10 15:36:38 · 1090 阅读 · 0 评论 -
spring各个jar包作用
Spring jar包官网下载地址:http://repo.spring.io/release/org/springframework/spring/Spring jar包的描述:针对3.2.2以上版本org.springframework spring-aop ——Spring的面向切面编程,提供AOP(面向切面编程)实现org.springframework spring-asp...转载 2019-05-05 15:22:01 · 178 阅读 · 0 评论 -
Spring详解(0 控制反转和依赖注入 AOP简介 )
目录依赖注入控制反转和依赖注入的关系Spring中的依赖注入AOP 面向切面编程Spring 框架本身的四大原则1) 使用pojo进行轻量级和最小侵入式开发2) 通过依赖注入和基于接口编程实现送耦合3) 通过AOP和默认习惯进行声明式编程4) 使用AOP和模板(template) 减少模式化代码依赖注入依赖注入是容器负责创建对象和维护对象间的依赖关...转载 2019-05-05 10:12:44 · 426 阅读 · 0 评论 -
/**和/*区别
Spring MVC中的路径匹配要比标准的web.xml要灵活的多。默认的策略实现了 org.springframework.util.AntPathMatcher,就像名字提示的那样,路径模式是使用了Apache Ant的样式路径,Apache Ant样式的路径有三种通配符匹配方法(在下面的表格中列出)这些可以组合出很多种灵活的路径模式Wildcard Description ...转载 2019-04-10 14:34:39 · 6452 阅读 · 0 评论 -
什么是循环依赖以及解决方式
1.什么是循环依赖?它发生在bean A依赖于另一个bean B时,bean B依赖于bean A:豆A→豆B→豆A当然,我们可以有更多的暗示:豆A→豆B→豆C→豆D→豆E→豆A2.春天会发生什么当Spring上下文加载所有bean时,它会尝试按照它们完全工作所需的顺序创建bean。例如,如果我们没有循环依赖,如下例所示:豆A→豆B→豆C.Spring将创建bean...转载 2019-03-30 17:18:50 · 59451 阅读 · 11 评论 -
Spring容器初始化过程
一、Spring 容器高层视图Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配号Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。二、内部工作机制该图描述了Spring容器从加载配置文件到创建出一个完整Bean的作业流程:1、ResourceLoader从存储介质中...转载 2019-03-01 11:18:22 · 165 阅读 · 0 评论 -
spring中注解注入 context:component-scan 的使用说明
通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个标签,配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean注:在注解后加上例如@Component(value=”a...转载 2019-03-01 10:17:46 · 180 阅读 · 0 评论 -
Spring各个jar包作用
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现Spring Aspects:Spring提供的对AspectJ框架的整合Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成...转载 2019-03-01 09:56:51 · 93 阅读 · 0 评论 -
Spring 配置文件中 Bean 的 property 属性使用示例
在 Spring 配置文件中,beans 元素是 spring-beans 内容模型的根结点,bean 元素是 beans 元素的子节点,通常 bean 元素用于定义 JavaBean。而 bean 元素包含以下几种子元素,它们分别是:constructor-arg 元素property 元素lookup-method 元素replace-method 元素在 Spring 配置文件中,用户...转载 2018-10-11 14:53:11 · 10417 阅读 · 0 评论 -
aop:aspectj-autoproxy的作用
通过配置织入@Aspectj切面虽然可以通过编程的方式织入切面,但是一般情况下,我们还是使用spring的配置自动完成创建代理织入切面的工作。 通过aop命名空间的<aop:aspectj-autoproxy />声明自动为spring容器中那些配置@aspectJ切面的bean创建代理,织入切面。当然,spring在内部依旧采用AnnotationAwareAs...转载 2018-09-10 17:25:16 · 3040 阅读 · 0 评论 -
Spring中context:annotation-config/的作用
最近在研究spring中<context:annotation-config/>配置的作用,现记录如下:<context:annotation-config/>的作用是向Spring容器注册以下四个BeanPostProcessor:AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProces...转载 2018-09-10 17:07:40 · 262 阅读 · 0 评论 -
spring中的context:component-scan
在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean注意:如果配置了<context:component-scan>那么<context:annotation-config/>标签就可以不用再xml中配置...转载 2018-08-26 08:43:02 · 331 阅读 · 0 评论 -
@Autowired和@Resource的区别
用途:做bean的注入时使用历史:@Autowired 属于Spring的注解 org.springframework.beans.factory.annotation.Autowired @Resource 不属于Spring的注解,JDK1.6支持的注解 javax.annotation.Resource共同点: 装配...转载 2018-08-02 19:41:32 · 132 阅读 · 0 评论 -
Spring 通过工厂方法(Factory Method)来配置bean
在spring的世界中, 我们通常会利用bean config file 或者 annotation注解方式来配置bean.在第一种利用bean config file(spring xml)方式中, 还包括如下三小类反射模式 工厂方法模式(本文重点) Factory Bean模式其中反射模式最常见, 我们需要在bean 配置中指明我们需要的bean object的全类名。例如:...转载 2018-08-05 22:48:58 · 831 阅读 · 0 评论 -
spring中lazy-init详解
ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化(也就是依赖注入)。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发现(否则的话可能要花几个小时甚至几天)。<bean id="testBe...转载 2018-08-05 18:34:08 · 166 阅读 · 0 评论 -
Spring配置中<bean>的id和name属性区分
ID属性在spring容器管理的Bean中,必须仅且只有一个无重复的ID。手动指定ID属性一般情况下,配置一个bean时,需要指定它的ID属性作为bean的名称。<bean id="helloWorld" class="com.learnSpring.hellWorld"/>1Q:如果在spring环境下,如果出现多个配置ID属性值一样的bean如果spring是默认设定,即可以覆盖b...转载 2018-07-06 17:40:10 · 1147 阅读 · 0 评论 -
Spring默认的Bean的scope
scope属性可以理解成bean的生命周期1、默认的值是singleton(単例),spring容器只会创建一个相应的bean实例,所有的对该bean的请求,spring容器都只返回这个实例。2、还可取值proptotype(原型) ,每次请求都会获得新的bean实例。3、还可取值request、session、global session等(不常用) ...转载 2018-06-09 17:14:50 · 4455 阅读 · 0 评论 -
Spring在代码中获取bean的几种方式
方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObjectSupport 方法四:继承自抽象类WebApplicationObjectSupport 方法五:实现接口ApplicationContextAware 方法六:通过Spring提供的Cont...转载 2018-05-09 11:48:30 · 223 阅读 · 0 评论 -
@service(xx)的作用,括号里的内容到底有什么作用,为什么要写呢
今天敲代码发现了一个问题,例如@Service("contractBindingReportFacade")括号里的内容有什么做用研究发现 当一个接口只有一个实现类,括号里的内容是没有意义的,只有在有多个实现类的时候才会起到作用.比如在一个Student实现类上加上@Service("student"),括号里面就是给实例化后的Student对象取个名字。。。这是在你一个接口有...转载 2018-09-27 15:18:47 · 2062 阅读 · 2 评论 -
Spring的@Autowired注入规则
Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。@Autowired 默认是按照byType进行注入的,但是当byType方式找到了多个符合的bean,又是怎么处理的? 经过一些代码的的测试,Autowired默认先按byType,如果发现找到多个b...转载 2018-09-27 15:45:41 · 1383 阅读 · 0 评论 -
一个接口多个实现类的Spring注入方式
1. 首先, Interface1 接口有两个实现类 Interface1Impl1 和 Interface1Impl2Interface1 接口:package com.example.service;/** * Created by liuzh on 2018-05-29. * 接口1 */public interface Interface1 { void fu...转载 2018-09-27 15:47:31 · 2360 阅读 · 0 评论