Spring

Spring容器的实例化的两种方式:

1、使用ApplicationContext加载配置文件(推荐使用本方法
	ApplicationContext ac = new ClassPathXmlApplicationContext(“com/demo/applicacionContext.xml”);配置文件在工程目录里
	或者ApplicationContext ac = new FileSystemXmlApplicationContext(“D:/applicationContext.xml”);配置文件在硬盘里
2、applicationContext是BeanFactory的子类
	Resource re = new ClassPathResource(“com/demo/applicacionContext.xml”);配置文件在工程目录里
	BeanFactory bc = new XmlBeanFactory(re);
	Bean bean = bc.getBean("bean在配置文件的id名");
	或者Resource re = new FileSystemResource(“com/demo/applicacionContext.xml”);配置文件在硬盘里
	BeanFactory bc = new XmlBeanFactory(re);
	Bean bean = bc.getBean("bean在配置文件的id名");
IOC
Spring对Bean组建的管理
1、bean组建的创建时机
	默认随着容器创建。我们可以使用延迟加载机制(在对应的bean组件配置lazy-init="true")在getBean的时候创建。
	或者使用批量延迟加载,在头文件后添加default—lazy-init="true"进行批量延迟。
2、Bean的创建模式
	默认单例模式,当然也可以使用scope属性进行修改。
	singleton:单例模式,每次返回同一个bean
	prototype:原型模式,每次返回一个新的bean
	request:仅限Web环境,生命周期和request相同
	session:仅限Web环境,生命周期和session相同
	global session:仅限Web环境,生命周期和application相同
3、Bean对象的初始化和销毁
	init-method:用于指定初始化方法
	destroy-method:用于指定销毁方法,仅适用于singleton模式
DI依赖注入:DI依赖注入是Ioc实现的重要技术,有两种方式
1、setter方式注入(推荐使用):给需要注入的类添加接口属性和其get/set方法,applicationContext里给需要注入的类引入接口实现类的bean的id。
2、构造方式注入:给需要注入的类添加接口属性以及构造实例方法,applicationContext里给需要注入的类引入<constructor-arg index="" ref="实现类">
AOP
什么是Aop及其好处?
      Aop是面向切面编程。
      好处:Aop切入点是共通处理。通过配置文件可以将共通的处理作用在一个或多个目标对象上,可以增加代码重用,使程序结构更好,更灵活。
Aop相关概念
      1、Adpect切面:指的是共通业务处理,可以作用在一个或多个目标对象;
      2、JoinPoint连接点:指的是切面组件在目标对象上作用的位置;
      3、PointCut切入点:切入点事连接点的集合,采用表达式指定;
      4、Target Object目标对象
      5、Advice通知:切面组件在连接点上执行的动作;
      6、AutoProxy动态代理:采用Aop之后,容器返回的时代里对象,用户调用的时候,有代理对象调用切面组件。
      	    有接口的话使用JDK代理;
      	    没有接口的话,采用CGLIB代理。
	aop.xml配置:
	<bean id="userService" class="com.maomao.service.UserServiceImpl"/>
	<bean id="optLogger" class="com.maomao.OptLogger"/>
	<aop:config>
		<aop:pointcut id="servicePointcut" exprssion="execution(*com.maomao.service.*.*(..))"/>
		<aop:aspect id="logAspect" ref="optLogger">
			<aop:before method="logger" pointcut-ref="servicePointcut"/>
		</aop:aspect>
	</aop:config> 
通知类型
	<aop:before/>前置通知,在目标方法调用前执行,不影响后续执行,除非抛异常;
	<aop:around/>环绕通知,在目标方法调用前和调用后都执行;
	<aop:after-returning/>后置通知,在目标方法调用后执行,出异常不执行;
	<aop:after/>最终通知,在目标方法调用后执行,不管是否有异常都执行;
	<aop:after-throwing/>异常通知,出现异常才会调用。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值