当前位置: 代码迷 >> Web前端 >> Spring学习一
  详细解决方案

Spring学习一

热度:220   发布时间:2012-09-12 09:21:30.0
Spring学习1

1 简单的配置. Spring的应用很简单,如果不需要要用到AOP,只要下面三个包就足够了:

commons-logging-api-1.1.jar
spring.jar
springside3-core-3.3.4.jar

如果用到AOP,还需要加上:

asm.jar
aspectjweaver.jar
cglib-2.1.3.jar

下面是简单的一个配置,加入了AOP支持。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
            default-autowire="byName">
    <!-- 搜索@Component, @Service, @Repository, @Controller -->
    <context:component-scan base-package="sa.framework.spring.test">
    	<context:include-filter type="annotation" 
		expression="org.aspectj.lang.annotation.Aspect"/>
    </context:component-scan>
    <!-- 启动AspectJ支持,这样才能让切面起效-->
    <aop:aspectj-autoproxy/>
    <!-- 进行bean的配置 scope=prototype是指每次getBean会得到一个新的实例,默认是单例 -->
    <bean id="people1" class="sa.framework.spring.test.bean.People" scope="prototype">
    	<property name="name" value="Chinese"></property>
    </bean>
	 <bean id="people2" class="sa.framework.spring.test.bean.People">
    	<property name="name" value="American"></property>
    </bean>
    
   <!--  --> <bean id="myPostProcessor" class="sa.framework.spring.test.beanprocessor.MyBeanPostProcessor"></bean>
</beans>

?

在程序中要使用Spring配置的的bean,只要

BeanFactory ctx = new ClassPathXmlApplicationContext("classpath*:applicationContext.xml");//使用项目src路径下的配置文件
People p = (People)ctx.getBean("people2");

?

?

2. IOC的原理按照我的理解就是将系统的一些Bean(程序的素材)以配置的形式,交给Spring容器进行初始化,并交给Spring容器进行管理(建立、销毁、保存等)。其实现的原理无非就是利用JAVA的反射和注入的功能,进行对象的动态生成以及参数设置。

?

3. 关于容器:Spring的容器都是通过BeanFactory接口衍生出来。一般都是用ApplicationContext来进行应用。具体的实现类使用

ClassPathXmlApplicationContext(“配置文件路径”);//配置文件在src下

FileSystemXmlApplicationContext(“配置文件路径”);//配置文件的路径使用系统路径

?

?

?

?

  相关解决方案