<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 26,  comments - 14,  trackbacks - 0
     Spring 是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框架。 

            ☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC) 模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。

      ☆ Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。

      ☆ Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何對象支持 AOP。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就可以將聲明性事務管理集成到應用程序中。

    在此 我做了個小demo 基于Spring的核心Ioc(inversion of control) 與面向切面編程AOP(Aspect Oriented Programming)。。。。。


    這個例子主要完成的義務邏輯是對信息的保存,主要代碼如下:

    package com.dr.service;

    import com.dr.DAO.ProductDAO;
    import com.dr.model.Product;

    public class ProductService {
     private ProductDAO productDAO;
     public void add(Product product){
      productDAO.save(product);
     }
     public ProductService(ProductDAO productDAO){
      super();
      System.out.println("ProductServic :ProductService");
      this.productDAO = productDAO;
     }
    }


    DAO層代碼如下:


    package com.dr.DAO;

    import com.dr.model.Product;

     

    public interface ProductDAO {
     public void save(Product product);

    }





    package com.dr.DAO.impl;

    import com.dr.DAO.ProductDAO;
    import com.dr.model.Product;

     

     

    public class ProductDAOImpl implements ProductDAO {
     private String name;
     private int id;
     public String getName() {
      return name;
     }
     public void setName(String name) {
      System.out.println("ProductDAOImple :setName");
      this.name = name;
     }
     public int getId() {
      return id;
     }
     public void setId(int id) {
      System.out.println("ProductDAOImpl :setId");
      this.id = id;
     }
     public void save(Product product) {
      //Hibernate
      //JDBC
      //XML
      //NetWork
      System.out.println("ProductDAOImpl :save :product saved!");
      this.toString();
     }
     public String toString(){
      System.out.println("id:"+id+"|name:"+name);
      return null;
      
     }

    }



    beans.xml部分代碼:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

     <bean id="p" class="com.dr.DAO.impl.ProductDAOImpl">
         <!--采用 setter()方法依賴注入-->
       <property name="name" value="11"></property>
        <property name="id" value="22"></property>
     </bean>
     <bean id="productService" class="com.dr.service.ProductService">
      <constructor-arg>
       <ref bean="p"/>
      </constructor-arg>
     </bean>
     
    </beans>



    測試類的代碼如下所示:



    package com.dr.test;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.dr.model.Product;
    import com.dr.service.ProductService;

     


    //Dependency Injection  依賴注入
    //Inverse of Control    控制反轉
    public class ProductServiceTest {

     @Test
     public void testAdd() throws Exception {
       //實例化應用上下文,Xml類路徑應用上下文
      ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
      //getBean() 所得到得對象是Object類型的,所有在此必須強制轉換。。。
      ProductService service = (ProductService) ctx.getBean("productService");
      
      Product product = new Product();
      product.toString();
      product.setId(20);
      product.setName("蘋果");
      service.add(product);
      
     }

    }


    posted on 2011-03-05 21:49 龍ぜ殘劍 閱讀(2722) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2011年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线亚洲人成电影网站色www| 在线看片无码永久免费视频| 免费中文字幕在线观看| 亚洲免费综合色在线视频| 亚洲免费网站观看视频| 国产亚洲精品成人AA片| 免费观看美女裸体网站| 国产成人综合亚洲| 亚洲免费日韩无码系列| 中国一级特黄的片子免费 | 亚洲精品国产成人| 无码国产精品一区二区免费16| 亚洲国产精品成人精品无码区 | 日本高清免费中文在线看| 国产又黄又爽又刺激的免费网址| 国产亚洲精品AAAA片APP| 五月天婷亚洲天综合网精品偷| xxxxx做受大片视频免费| 亚洲国产精品无码久久SM| 91久久精品国产免费一区| 国产精品亚洲自在线播放页码| 免费看的黄色大片| www.av在线免费观看| 久久亚洲国产成人亚| 毛片高清视频在线看免费观看| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲成AV人在线播放无码| 波多野结衣在线免费观看| 男男gay做爽爽免费视频| 亚洲宅男天堂在线观看无病毒| 久久青青草原国产精品免费| 亚洲中文无码a∨在线观看| 免费99热在线观看| 久久99热精品免费观看动漫| 欧洲 亚洲 国产图片综合| 亚洲精品第一国产综合境外资源| 三年片在线观看免费大全电影 | 国产精品久免费的黄网站 | 国产精品入口麻豆免费观看| 美女无遮挡免费视频网站| 久久夜色精品国产亚洲AV动态图|