spring
穷水叮咚
这个作者很懒,什么都没留下…
展开
-
Spring事务回滚和异常类
原文链接异常的继承结构:Throwable为基类,Error和Exception继承Throwable。Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。 Error异常 Error表示程序在运行期间出现了十分严重、不可恢复的错误,在这种情况下应用程序只能中止运行,例如JAVA 虚拟机出现错误。Error是一种u...转载 2018-03-29 17:27:15 · 791 阅读 · 0 评论 -
浅谈Spring中的事务回滚
使用Spring管理事务过程中,碰到过一些坑,因此也稍微总结一下,方便后续查阅。1.代码中事务控制的3种方式编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚。优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了。声明式事务:就是使用SpringAop配置事务,这种方式大大的简化了编码。需要注意的是切入点表达式一定要写正确。注解事务:直接在Service层的方法上面加上@Trans...转载 2018-03-29 17:17:41 · 971 阅读 · 0 评论 -
@Configuration注解、@Bean注解
1、@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)package com.test.spring.support.configuration;@Configurationpublic class TestConfiguration { public TestConfigur...转载 2018-04-21 22:38:32 · 291 阅读 · 0 评论 -
Spring Bean的生命周期
Spring上下文中的Bean也类似,【Spring上下文的生命周期】1. 实例化一个Bean,也就是我们通常说的new2. 按照Spring上下文对实例化的Bean进行配置,也就是IOC注入3. 如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是Spring配置文件中Bean的ID4. 如果这...转载 2018-08-22 22:31:43 · 89 阅读 · 0 评论 -
spring实现解耦的概述
1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作...转载 2018-08-23 13:17:11 · 5476 阅读 · 0 评论 -
Spring——IoC详解(IoC概览)
一、IoC思想 首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想...转载 2018-09-17 22:18:28 · 249 阅读 · 0 评论 -
Spring——IoC详解(深入IoC实现)
我们已经知道了容器实现控制反转和依赖注入的过程可以分为两个阶段:容器启动阶段 Bean的实例化阶段其实在这个两个阶段我们都可以偷偷的做一些事情,我们可以根据具体的场景加入自定义的扩展逻辑,下面我们就来了解一下容器启阶段我们可以做哪些事情。Spring提供了一种叫做BeanFactoryPostProcessor的容器扩展机制。该机制允许我们在容器实例化相应对象之前,对注册到容器的Bea...转载 2018-09-17 22:19:35 · 193 阅读 · 0 评论 -
AOP五大通知
要在 Spring 中声明 AspectJ 切面, 只需要在 IOC 容器中将切面声明为 Bean 实例. 当在 Spring IOC 容器中初始化 AspectJ 切面之后, Spring IOC 容器就会为那些与 AspectJ 切面相匹配的 Bean 创建代理,AOP的原理其实就是利用了动态代理,将动态代理进行了封装。在 AspectJ 注解中, 切面只是一个带有 @Aspect 注解的...转载 2018-09-13 22:44:43 · 974 阅读 · 0 评论 -
Spring-利用ThreadLocal解决线程安全问题
ThreadLocal是什么ThreadLocal,顾名思义,它不是一个线程,而是线程的一个本地化对象。当工作于多线程中的对象使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的变量副本。所以每一个线程都可以独立地改变自己的副本,而不会影响其他线程所对应的副本。从线程的角度看,这个变量就像是线程的本地变量,这也是类名中“Local”所要表达的意思。...转载 2018-10-14 10:29:54 · 892 阅读 · 0 评论 -
让Spring自动扫描和管理Bean
原文链接前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些组件采用XML的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。Spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Component、@Service、@Controller、@Repository注解的类,并把这些类纳入进Spring容...转载 2018-03-29 15:03:52 · 784 阅读 · 0 评论 -
spring aop详解
原文链接AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与...转载 2018-03-29 10:22:13 · 101 阅读 · 0 评论 -
使用Spring注解方式管理事务与传播行为详解
原文链接一原文链接二spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前...转载 2018-03-29 17:34:42 · 1168 阅读 · 0 评论 -
spring 三种实例化bean
spring提供了三种实例化bean1.使用类构造器实例化<bean id="person" class="com.spring.Person"></bean> //利用Person类的无参数构造函数实例化Person类package com.spring;public class Person { private String name; private int ...原创 2018-03-28 14:11:18 · 162 阅读 · 0 评论 -
Spring -bean对象的生命周期
原文链接一,单例管理的对象:(scope="singleton")1.默认情况下,spring在读取xml文件的时候,就会创建对象。2.在创建的对象的时候(先调用构造器),会去调用init-method=".."属性值中所指定的方法.3.对象在被销毁的时候,会调用destroy-method="..."属性值中所指定的方法.(例如调用container.destroy()方法的时候)4.lazy-...转载 2018-03-28 16:55:53 · 1566 阅读 · 0 评论 -
spring管理bean作用域
spring bean作用域的作用域有5种1.singleton(单实例)Spring Bean 中所说的作用域,在配置文件中即是“scope”<bean id="person" class="com.spring.Person" scope="singleton"></bean>测试@Test public void test(){ // ApplicationC...原创 2018-03-28 14:51:27 · 182 阅读 · 0 评论 -
spring 注入方式
spring提供3种注入方式1.setter方法注入Person类,一定要有setter方法package com.spring;public class Person { private String name; private int age; public String getName() { return name; } public void setName(Str...原创 2018-03-28 17:22:53 · 125 阅读 · 0 评论 -
spring 常用注解
原文链接使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册<context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/>。如:在base-package指明一个包1 <context:component-scan base-pack...转载 2018-03-28 17:47:24 · 129 阅读 · 0 评论 -
Spring配置文件详解
原文链接Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。 ...转载 2018-03-29 10:03:19 · 168 阅读 · 0 评论 -
Spring框架中的单例Beans是线程安全的么
看到这样一个问题:Spring框架中的单例Beans是线程安全的么?Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如 View Model...转载 2018-10-14 10:47:34 · 4863 阅读 · 1 评论