spring

代码地址    网盘/框架/spring/spring.rar

IoC

IoC的全称是Inversion of Control,中文称为控制反转, Martin Flower由根据它创造了一个新词:Dependency Injection,中文称为依赖注入。这两个词讲的是一回事儿。

实现IoC通常有三种方式:

1)利用接口或者继承,一般以接口较多。这种实现方式和我们平时提到的lazy load有异曲同工之妙。

2)构造函数注入。3)属性注入。

简单的接口和实现;通过静态工厂创建Bean;通过实例工厂创建Bean

 

如何设置对象属性

Spring支持两种方式对属性赋值:set方式和构造函数。

通过Set方式为对象属性赋值

<bean id="userService" class="sample.spring.ioc.UserServiceBean">
    <property name="userID" value="1"/>
</bean>

通过构造函数为对象属性赋值

<bean id="userService2" class="sample.spring.ioc.UserServiceBean">
    <constructor-arg index="0" value="1"/>
</bean>

需要注意:我们定义的业务对象应该保留默认的构造函数。

 

原文链接  http://www.cnblogs.com/wing011203/archive/2013/05/15/3078849.html

原文 这是作用在setter上的Annotation,@Resource 可以不写明name参数,这时Spring会首先按照名字然后按照数据类型的方式去定位bean。

有问题

 

自动注册    <context:component-scan base-package="sample.spring.ioc"/>

然后我们可以在sample.spring.ioc包下的对象,添加@Component/@Service/@Controller/@repository,这样Spring会自动将带有这些Annotation的类进行注册。

@Resource/@Autowried/@Qualifier

@Resource(name="userDaoImpl")             private UserDao userDao1;
@Autowired(required=false)
@Qualifier("userDaoImpl3")                private UserDao userDao3;
1 @Resource
2 public void setUserDao2(UserDao userDao2) {
3      this.userDao2 = userDao2;
4 }
这是作用在setter上的Annotation,@Resource 可以不写明name参数,这时Spring会首先按照名字然后按照数据类型的方式去定位bean。

 

AOP

通常情况下,对于AOP,我们有两种方式来实现。

使用DynamicProxy实现AOP;使用Cglib实现AOP

 

使用Spring实现AOP

使用Annotation来配置AOP的信息

Spring框架集合了ProxyFactory和Cglib两种方式来实现AOP。

Spring中,如果类实现了接口,Spring会按照ProxyFactory的方式来处理;如果没有实现接口,Spring会按照Cglib的方式来处理。

使用Spring配置文件来配置AOP

原文链接  http://blog.csdn.net/xiaoxian8023/article/details/17258933

 

 

 

在web.xml中配置spring

 <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

spring读取配置文件

    <bean id="propertyConfigurer"
    class="com.yongtong.tool.ReadPropertiesContent">
    <property name="locations">
        <list>
            <value>/WEB-INF/classes/config.properties</value>
        </list>
    </property>

posted @ 2015-07-16 16:49  喝酒骑驴撞城管  阅读(93)  评论(0编辑  收藏  举报