spring_notes

2 篇文章 0 订阅
1 篇文章 0 订阅


--------------------------------------------------------------------------------
WebAppliactaionContext 启动时需要日志功能,所以需要读取log4j 配置文件,一般放在web-inf/classes目录下。
----------------------------------------------------------------------------
AOP
动态代理
proxy
invocationhandler
-----------------------------------------------------------------------
Spring ioc&annoation
bean的生命范围scope 默认singleton
有五种
 singleton  prototype request session global session
struts2 action用prototype
集合装配 sets list map 

自动装配autowire= byName byType  

ioc用annotation比较好
aop用xml比较好

@Autowired 默认按名称
setter方法(@qualifier参数 指定按类型)

@Resource
必须有源码 by name 按名字找

@Component /Repository  /Service / Controller  几乎一样

@Scope("prototype")

@PostConstruct / PreDestroy == init-method / destroy-method

-------------------------------------------------------------------------------

在项目中使用Spring IoC的步骤:


向项目中添加所需要的jar包

编写配置文件

初始化Spring容器


与IoC有关的jar包:
spring.core、spring.beans、spring.context、spring.expression


Spring容器成功启动的条件
Spring类
配置信息
Bean

主要讲了ioc容器 简单工厂类课件第二章下部分

String 3.x 2016.3.25

Ioc 容器:

代码解耦 设计模式 代码优化

注入方法:构造函数注入 属性注入 接口注入(一般不用,spring没有)

工作机制:

JVM 运行时产生三个classloader

(爷爷)根装载器:(c++写的,java中找不到)负责装载JRE的核心类库,如JRE目标下的rt.jar,charsets.jar.

(爸爸)ExtClassLoader(扩展类装载器)负责装载JRE扩展目录Ext中的JAR类包

(儿子)AppClassLoader(系统类装载器)负责装载Classpath路径下的类包

 

ClassLoader 获取当前线程

Class 装载类的反射实例

Constructor 构造函数实例化类对象

Method getMethod(String method setter方法, Class paramClass传对象类型)

Invoke(Object obj, Object param)

 

Tips:

java.lang.NoSuch MethodError:全盘负责委托机制 JVM加载类时加载错版本的jar

解决:srcAdd.jsp 放到web应用根路径下,http://localhost/srcAdd.jsp?className = java.net.URL 查看JVM从哪个类包加载指定类。

 

Private/protected 成员变量和方法,只要JVM安全机制允许也可以通过反射进行调用。

setAccessible(boolean access) 方法取消Java语言检查,否则IllegalAccessException

要是JVM 设置了安全机制则抛出SecurityException

 

Spring 抽象资源接口(作用无论Spring配置信息放在哪儿都可以通过Resource接口返回信息)

资源加载

Classpath*:有*扫描所有JAR包出现的类路径,没有*只扫描第一个出现的classpath

Ant风格的匹配符:?一个字符 ;*多个字符;**多层路径

Ant自动化编译工具

配置文件描述BeanBean之间的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系。

Ioc容器提供了Bean实例缓存,生命周期管理,Bean实例代理,事件发布,资源装载等高级服务。

BeanFactory == Ioc容器(面向spring本身)

Application Context == 应用上下文/spring容器(面向使用spring的开发者)

BeanFactory启动Ioc容器,bean的初始化在第一次调用;而singleton的话,第一次就缓存Bean实例,以后直接取缓存实例。

初始化BeanFactory时必须在类路径下有Log4j配置文件,否则启动spring容器会报错。

 

Spring AOP基础

动态JDK 继承接口 为代理类的子类

ProxyclassLoader, Interface this(目标回调对象))接口InvokcationHandler

创建代理实例 目标对象与代理对象行为一致

invoke方法(Object proxyMethod method args[]

 

CGLib 为代理类的父类

Implements Method Intercepter 重写interceptObject proxytarget),Method args[]

 简单属性注入

<property name="price" value ="8"></property>



 



 

 

 





 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值