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 · 608 阅读 · 0 评论 -
spring常用上下文(2)
AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。AnnotationConfigWebApplicationContext:从一个或多个基于Java的配置类中加载Spring Web应用上下文。ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把...原创 2019-07-22 19:28:28 · 223 阅读 · 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 · 137 阅读 · 0 评论 -
springAOP-基础
1 spring切面可以应用5种类型的通知1)前置通知(Before):在目标方法被调用之前调用通知功能2)后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么3)返回通知(After-returning):在目标方法执行成功之后调用通知4)异常通知(After-throwing):在目标抛出异常之后调用通知5)环绕通知(Around):通知包裹了被通知的方法...原创 2019-08-17 15:44:59 · 344 阅读 · 0 评论 -
springAOP-使用注解创建切面
1 目标对象package com.musi.bean;import org.springframework.stereotype.Component;@Componentpublic class Animal { public void run(){ System.out.println("animal is running ....."); } ...原创 2019-08-14 20:54:53 · 282 阅读 · 0 评论 -
springAOP-xml中声明切面
1 spring的aop命名空间中,提供了多个元素用来在XML中声明切面,如下所示: ==================================================================================================== aop配置元素 用途 <aop:advisor>...原创 2019-08-17 19:03:51 · 163 阅读 · 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 · 256 阅读 · 0 评论 -
spring装配bean-自动化装配
开启组件扫描1 通过javabean的方式配置package soundsysemimport org.springframework.context.annotation.componentScan;import org.springframework.context.annotation.Configuration@Configuration@ComponentScanpubl...原创 2019-07-29 20:12:31 · 78 阅读 · 0 评论 -
spring装配bean-@Autowired的使用
1 放在私有属性上public class CDPlayerTest{ @Autowired private CompactDisc cd; @Test public void cdShouldNotBeNull(){ assertNutNull(cd); } }2 放在构造器上@Componentpublic class CDPlayer implements M...原创 2019-07-29 20:16:46 · 278 阅读 · 1 评论 -
spring装配bean-通过Java代码装配bean
1 创建配置类package soundsystem;import org.springframework.context.annotation.Configuration;@Configurationpublic class CDPlayerConfig(){}2 声明简单的bean@Beanpublic CompactDisc sgtPeppers(){ return n...原创 2019-07-29 20:21:03 · 182 阅读 · 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 · 229 阅读 · 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 · 183 阅读 · 0 评论 -
spring高级装配-处理自动装配的歧义性
@Autowiredpublic void setDessert(Dessert dessert){ ...}Dessert为接口,有三个实现类,如下:@Componentpublic class Cake implements Dessert {...}@Componentpublic class Cookies implements Dessert{...}@Compo...原创 2019-08-03 15:49:33 · 119 阅读 · 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 · 85 阅读 · 0 评论 -
spring高级装配-bean的作用域
spring定义了多种作用域,如下单例(Singleton):在整个应用中,只会创建一个bean的实例原型(Prototype):每次注入或者通过spring上下文获取的时候,都会创建一个新的bean实例会话(Session):在web应用中,为每个会话创建一个bean实例请求(Request):在web应用中,为每个请求创建一个bean实例其中单例是默认的作用域声明bean的作用域...原创 2019-08-03 15:53:35 · 135 阅读 · 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 · 155 阅读 · 0 评论 -
spring高级装配-profile
1 配置profile beanpackage 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 · 111 阅读 · 0 评论 -
spring事务
1 概念事务:逻辑上的一组操作,组成这组操作的一系列操作要么全部成功,要么全部失败.因此事务的结束有两种,当事务中的所有操作全部执行成功,事务提交.如果其中的一个操作失败,将发生回滚操作,撤销到事务开始的状态…事务的特性:1)原子性(Atomicity):整个事务中所有的操作,要么全部完成,要么全部不完成2)一致性(Consistency):一个事务可以改变封装状态(除非它是一个只读的)....原创 2019-10-01 17:59:28 · 118 阅读 · 0 评论 -
spring配置文件详解-applicationContext.xml文件路劲
spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码org.springframework.web.context.ContextLoaderListenerspring就会被自动加载但在实际的开发过程中,我们可能需要调整applicationContext.xml的位置,以使程序结构更加的清晰。在web.xml中,配...原创 2019-04-08 00:04:53 · 239 阅读 · 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 · 1285 阅读 · 0 评论