
Spring
慕思m
进无止境 有始无终
展开
-
spring4各个模块介绍(1)
1 spring核心容器 容器是Spring框架最核心的部分,它管理着Spring应用中的bean创建,配置和管理.在该模块中,包括了Spring bean工厂,它为spring提供了DI功能.基于bean工厂,我们还会发现多种Spring应用上下文的实现,每一种都提供了Spring的不通方式. spring-beans: 这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理be...原创 2020-01-07 19:39:14 · 637 阅读 · 0 评论 -
spring常用上下文(2)
AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。 AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。 ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把...原创 2019-07-22 19:28:28 · 256 阅读 · 0 评论 -
spring容器中bean的生命周期(3)
1.Spring对bean进行实例化; 2.Spring将值和bean的引用注入到bean对应的属性中; 3.如果bean实现了BeanNameAware接口,Spring将bean的ID传递给setBean-Name()方法; 4.如果bean实现了BeanFactoryAware接口,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入; 5.如果be...原创 2019-08-03 14:30:28 · 151 阅读 · 0 评论 -
springAOP-基础
1 spring切面可以应用5种类型的通知 1)前置通知(Before):在目标方法被调用之前调用通知功能 2)后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么 3)返回通知(After-returning):在目标方法执行成功之后调用通知 4)异常通知(After-throwing):在目标抛出异常之后调用通知 5)环绕通知(Around):通知包裹了被通知的方法...原创 2019-08-17 15:44:59 · 496 阅读 · 0 评论 -
springAOP-使用注解创建切面
1 目标对象 package com.musi.bean; import org.springframework.stereotype.Component; @Component public class Animal { public void run(){ System.out.println("animal is running ....."); } ...原创 2019-08-14 20:54:53 · 300 阅读 · 0 评论 -
springAOP-xml中声明切面
1 spring的aop命名空间中,提供了多个元素用来在XML中声明切面,如下所示: ==================================================================================================== aop配置元素 用途 <aop:advisor>...原创 2019-08-17 19:03:51 · 182 阅读 · 0 评论 -
springAOP-注入AspectJ切面
1 新建一个aspect,如图 代码如下: package com.musi.aop.aspectj; public aspect AnimalAspectj { public AnimalAspectj(){} pointcut run():execution(* com.musi.bean.Animal.run(..)); after():run(){ ...原创 2019-08-18 09:38:40 · 276 阅读 · 0 评论 -
spring装配bean-自动化装配
开启组件扫描 1 通过javabean的方式配置 package soundsysem import org.springframework.context.annotation.componentScan; import org.springframework.context.annotation.Configuration @Configuration @ComponentScan publ...原创 2019-07-29 20:12:31 · 88 阅读 · 0 评论 -
spring装配bean-@Autowired的使用
1 放在私有属性上 public class CDPlayerTest{ @Autowired private CompactDisc cd; @Test public void cdShouldNotBeNull(){ assertNutNull(cd); } } 2 放在构造器上 @Component public class CDPlayer implements M...原创 2019-07-29 20:16:46 · 311 阅读 · 1 评论 -
spring装配bean-通过Java代码装配bean
1 创建配置类 package soundsystem; import org.springframework.context.annotation.Configuration; @Configuration public class CDPlayerConfig(){ } 2 声明简单的bean @Bean public CompactDisc sgtPeppers(){ return n...原创 2019-07-29 20:21:03 · 200 阅读 · 0 评论 -
spring装配bean-通过xml装配bean
1 SpringXml配置模板如下 <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3/org/2001/XMLSchema-instance" xsi:schemaLocation...原创 2019-07-29 20:39:35 · 242 阅读 · 0 评论 -
spring装配bean-导入混合配置
在sprng中各种bean配置方案并非互斥,我们可以将JavaConfig的组件扫描和自动装配或xml配置混合在一起 在Javaconfig中引用xml配置 package soundsystem; import org.springframework.context.annotation.Bean; import org.sprignframewotrk.context.annot...原创 2019-07-29 20:47:05 · 203 阅读 · 0 评论 -
spring高级装配-处理自动装配的歧义性
@Autowired public void setDessert(Dessert dessert){ ... } Dessert为接口,有三个实现类,如下: @Component public class Cake implements Dessert {...} @Component public class Cookies implements Dessert{...} @Compo...原创 2019-08-03 15:49:33 · 140 阅读 · 0 评论 -
spring高级装配-条件化的bean
@Conditional注解的使用 @Bean @Conditional(MagicExistsCondition.class) public MagicBean magicBean(){ return new MagicBean(); } @Conditional将会通过Condition接口进行条件对比 public interface Condition{ boolean matche...原创 2019-08-03 15:45:26 · 102 阅读 · 0 评论 -
spring高级装配-bean的作用域
spring定义了多种作用域,如下 单例(Singleton):在整个应用中,只会创建一个bean的实例 原型(Prototype):每次注入或者通过spring上下文获取的时候,都会创建一个新的bean实例 会话(Session):在web应用中,为每个会话创建一个bean实例 请求(Request):在web应用中,为每个请求创建一个bean实例 其中单例是默认的作用域 声明bean的作用域 ...原创 2019-08-03 15:53:35 · 145 阅读 · 0 评论 -
spring高级装配-运行时注入
<bean id="sgtPeppers" class="soundsystem.BlandDisc" c:_title="Sgt.Pepper's Lonely Hearts" c:_artist="The Beatles" /> 上述配置中是sgtPepper的属性值是写死的,有时候这些值我们想在运行时再确定,那么要如何实现呢,spring提供了两种方式可以做到运行时注入:...原创 2019-08-03 16:02:43 · 169 阅读 · 0 评论 -
spring高级装配-profile
1 配置profile bean package com.myapp; import javax.activation.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.spri...原创 2019-08-03 15:42:19 · 121 阅读 · 0 评论 -
spring事务
1 概念 事务:逻辑上的一组操作,组成这组操作的一系列操作要么全部成功,要么全部失败.因此事务的结束有两种,当事务中的所有操作全部执行成功,事务提交.如果其中的一个操作失败,将发生回滚操作,撤销到事务开始的状态… 事务的特性: 1)原子性(Atomicity):整个事务中所有的操作,要么全部完成,要么全部不完成 2)一致性(Consistency):一个事务可以改变封装状态(除非它是一个只读的)....原创 2019-10-01 17:59:28 · 140 阅读 · 0 评论 -
spring配置文件详解-applicationContext.xml文件路劲
spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码 org.springframework.web.context.ContextLoaderListener spring就会被自动加载 但在实际的开发过程中,我们可能需要调整applicationContext.xml的位置,以使程序结构更加的清晰。在web.xml中,配...原创 2019-04-08 00:04:53 · 258 阅读 · 0 评论 -
Spring中 @Autowired注解与@Resource注解的区别
在Spring 3.X中经常使用到@Autowired和@Resource进行装配。 不禁好奇这两个注解的差异在何处??? 相同点: @Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。 不同点: (1)提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说...转载 2019-03-31 22:48:17 · 1322 阅读 · 0 评论