spring 3.x企业应用 --读后感和体会2

来源:互联网 发布:欧陆风云4mac修改时间 编辑:程序博客网 时间:2024/05/17 03:28

1、spring 的框架图 的理解 ,分3层,第3层是ioc ,依赖注入。第2层是AOP,弥补oop编程的不足。提供面向切面的服务。ioc 和 aop 算是spring的核心基础。第一次,是一些框架。具体分为:数据访问和数据库访问,包括 ORM, OXM,JDBC,JSM ;远程访问:webservice、web  、portlet ;测试

2、spirng ioc 的容器 ,beanforcoty ,applictioncontext,webappliactioncontext,.

     beanfactory :其实就是ioc容器,负责依赖类之间的创建、拼接、管理、获取等工作。

   context 模块构建在核心模块之上,扩展了beanforty的功能。添加了i18n国际化、bean 生命周期控制、框架事件体系、资源加载透明化等多项功能。此外,该模块提供了许多企业级服务的支持。如邮件服务,任务调度,jndi定位,ejb集成,远程访问等。applictionContext是context模块的核心接口。

3、AOP  是进行横切逻辑编程的思想。spring 整合ASPECTJ这种AOP语言级的框架。在sppring 里实现AOP编程拥有众多选择。JAVA 5 引入,java.lang.instrument,允许在jvm启动时启用一个代理类,通过该代理类在运行期修改类的字节码,改变一个类的功能。实现AOP的功能。

4、spring表达式语言

   类似于el表达式,可以在spring的xml配置文件或spring配置的注解中使用。可以在bean 配置时和java实例化对象进行交互,获取动态的特性。比如你可以调用执行某个bean的方法,让方法的返回值作为另一个bean的属性值。

  5、spring提供三种ioc配置信息。xml配置方式、注解的配置方式、java类的配置方式。

6、数据访问层新增OXM功能。

 

第二章 快速入门

在编写dao接口的实现类时,大家也想有个问题:在以上两个dao实现类中都没有打开/释放Conncetion的代码,dao类究竟如何访问数据库呢?我们前面说过,样板式的操作都

被jdbctemplate封装起来了,jdbctemplate本真需要一个datasource,userdao都提供一个带@AutoWired注解的jdbctemplate变量。所有我们的事先申明一个数据源。xml配置内容:

< context:componect-scan base-package="com.baobaotao.dao">

< context:componect-scan base-package="com.baobaotao.service">

 

 <beanid="datasource" class="org.apache.commons.dbcp.BasicDataSource" destory-method="close" p:dirverClassName="com.mysql.jdbc.Driver"

 p:url="jdbc:mysql://localhost:3309/sampledb"

p:username="root" p:pssword="1234">

  <bean id="jdbctemplate" class="org.springframework.jdbc.core.jdbctemplate">

  p:dataSource-ref="dataSource" 

</bean>

<bean id="transactionManager"class="org.springframework.jdbc.datasource.datasourceTransactionManager" p:datasource-ref="datasource"/>

<aop:config proxy-target-class="true">

     <aop:pointcut id="serviceMethod" expression="execution(*com.baobaotao.service..*(..)*)">

    <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>

<aop:config>

<tx:adviceid="txAdvice" transaction-manager="transactionManager">

<tx:attributes><tx:method name="*">

</tx:attributes>

<tx:advice>

</bean>

 

单元测试

  junit4和junit3相比有了重大的改进。我们采用junit4进行测试。 通过FILE-New-other  ---Java-JUNIT-JUnit TestCase

 

@RunWith(SpringJUnit4ClassRunner.class)

@ContectConfigruton(loactions={"/applictionContext.xml})

public classTestUserService{

       @AutoWired

       private UserService userService

   @Test

   publicvoid hasMatchUser(){}

 }

 

2.5 展现层

   spirng mvc框架配置

web.xml

<web-app>

 <context-param>

     <param-name>contextConfigLocation</param-name>

    <param-value>classpath:appliactioncontext.xml</parm-value>

</context-param>

<listener>

  <listener-class>org.springframework.web.context.contextloaderLister</listener-class>

</listener>

</web-app>

首先,通过web容器上下文参数指定spring配置文件的地址。多个配置文件可用逗号或空格分隔。,contentloaderlistener 在监听web容器启动时自动运行。

它会根据contextconfiglocation web 容器参数获取配置文件。并启动spring容器。注意要将log4j。propertis日志配置文件放置在类路径下。以便日志引擎自动生效。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0