初学spring(一)

1.spring 在ssh 中所处的位置

  

  struts 是web框架(jsp,action,actionform)

  hibernate 是orm框架,处于数据持久层

 spring 是容器框架,配置bean和管理bean之间的关系,其中 ioc(inverse of control) 即控制反转,和di (dependency injection) 依赖注入 是spring的核心。

2.开发一个简单spring项目的流程

  a.引入开发spring项目所需的jar包: spring.jar(最小配置),日志包common-logging.jar

  b.创建一个spring的核心配置文件 applicationContext.xml [hibernate有核心 hibernate.cfg.xml struts核心文件 struts-config.xml], 该文件一般放在src目录下,

   该文件中引入 xsd文件 :可以从给出的案例(spring源代码包)中拷贝一份.

    说明:

         <!--
                  bean元素的作用就是,当框架加载的时候,容器就会自动创建一个bean的实例,  类似 UserService us = new UserService();
                  property元素的作用就是,创建实例后给实例的属性注入值,
类似 us.setName("spring"); 
           -->
    <bean id="userService" class="com.service.UserService">
        <property name="name">
            <value>spring</value>
        </property>
    </bean> 

3.创建实体bean,核心部分代码

 

1 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");  //得到容器对象
2 3 UserService us = (UserService) ac.getBean("userService"); //实例化bean
4 5 us.sayHello();

 4.Ioc(inverse of control 控制反转)  和 Dj (dependency injection 依赖注入)

    控制反转: 把创建和维护对象的权力从代码中转移到spring容器(applicationContext.xml)中

    <bean id="userService" class="com.service.userServce">

        <property name="name" vlaue="spring"/>

        <property name="helloService" ref="helloService"/>

    </bean>

    <bean id="helloService" class="com.service.helloServce">

        <property name="words" vlaue="hello"/>

   </bean>

 在这段配置中体现了spring的三个特点:

    a.配置bean

    b.注入属性

    c.维护bean与bean之间的关系

    使用时通过getBean(bean_id) 来获取对象实例。

  在UserServce 类中 有这样一段代码:

    .....

    private HelloServce helloServce;

   ....

   并为其创建get 和 set 方法。此时如果没有实例化 helloServce,在UserServce 类直接调用 helloServce对象引用中的方法,肯定是报错的。

通过在applicationContext.xml中配置上述代码后,则可以直接调用。这也正好体现了spring的特点所在。

   spring的底层实现机制可以采用 dom4j 和 java的反射机制来实现,结合HashMap 来维护实例对象的关系。

   spring实际上是一个容器框架,可以维护web层,业务层,dao层(持久层)的各个组件,

   注:struts主要充当web层,接管jsp/action/表单等,主要体现在数据输入,数据处理以及数据的展示。有包含view以及control层。

        在mvc这个概念中,model层包含 业务层,dao层以及持久层。

 

 

 

 说明:部分内容摘录自网络

 

posted @ 2013-12-14 18:37  未来动力  阅读(157)  评论(0编辑  收藏  举报