zoukankan      html  css  js  c++  java
  • Spring

    1.School类

    package top.wyyblog.DI5;

    public class School {

     private String name;  

    public void setName(String name) {

      this.name = name; 

    }

     @Override 

    public String toString() { 

     return "School [name=" + name + "]"; 

    }

    }

    2.Student类

    package top.wyyblog.DI5;

    public class Student { 

    private String name; 

    private int age; 

    private School school;

     public Student() {

     }

     public void setName(String name) { 

     this.name = name;

     }  

    public void setAge(int age) { 

     this.age = age;

     }

     public void setSchool(School school) { 

     this.school = school;

     }  

    @Override

     public String toString() { 

     return "Student [name=" + name + ", age=" + age + ", school=" + school + "]"; 

    }

    }

    3.测试类

    package top.wyyblog.DI5;

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.ClassPathXmlApplicationContext;

    public class TestDemo {

     public static void main(String[] args) {  

    ApplicationContext context = new ClassPathXmlApplicationContext("top/wyyblog/DI5/applicationContext.xml");  

    Student student = (Student) context.getBean("student");  

    System.out.println(student); 

    }

    }

    4.自动注入(applicationContext.xml配置文件)

            (a). byName自动注入

    <bean id="school" class="top.wyyblog.DI5.School">  

    <property name="name" value="极速学院">

    </property>

     </bean> 

    <!-- autowire="byName"会从容器中查找与实体类的域属性同名的Bean 的id,   并将该Bean对象自动注入给该域属性 -->   

    <bean id="student" class="top.wyyblog.DI5.Student" autowire="byName"> 

        <property name="name" value="李四">

    </property>     

    <property name="age" value="80">

    </property>   

    </bean>

     (b). byType自动注入

    <bean id="school2" class="top.wyyblog.DI6.School"> 

     <property name="name" value="极速学院">

    </property>

     </bean>

     <!-- autowire="byType"会从容器中查找与实体类的域属性类型具有 is-a 关系的Bean,   并将该Bean对象自动注入给该域属性 -->   

    <bean id="student" class="top.wyyblog.DI6.Student" autowire="byType">   

     <property name="name" value="李四">

    </property>   

     <property name="age" value="80"></property>  

      </bean>

    一)静态代理: 

    1.Count.java

    [java] view plaincopy
     
     
     
    1. <span style="font-size:16px;">package net.battier.dao;    
    2. /**   
    3.  * 定义一个账户接口   
    4.  *    
    5.  * @author Administrator   
    6.  *    
    7.  */     
    8. public interface Count {     
    9.     // 查看账户方法     
    10.     public void queryCount();     
    11.     // 修改账户方法     
    12.     public void updateCount();      
    13. }   </span>  

    2.CountImpl.java

    [java] view plaincopy
     
     
     
      1. package net.battier.dao.impl;     
      2. import net.battier.dao.Count;     
      3. /**   
      4.  * 委托类(包含业务逻辑)   
      5.  *    
      6.  * @author Administrator   
      7.  *    
      8.  */     
      9. public class CountImpl implements Count {  
      10.     @Override     
      11.     public void queryCount() {     
      12.         System.out.println("查看账户方法...");     
      13.     }     
      14.     @Override     
      15.     public void updateCount() {   
      16. System.out.println("修改账户方法...");     
      17.     }     
      18. }     
      
    1. package net.battier.dao.impl;     
    2.      
    3. import net.battier.dao.Count;     
    4.      
    5. /**   
    6.  * 这是一个代理类(增强CountImpl实现类)   
    7.  *    
    8.  * @author Administrator   
    9.  *    
    10.  */     
    11. public class CountProxy implements Count {     
    12.     private CountImpl countImpl;     
    13.      
    14.     /**   
    15.      * 覆盖默认构造器   
    16.      *    
    17.      * @param countImpl   
    18.      */     
    19.     public CountProxy(CountImpl countImpl) {     
    20.         this.countImpl = countImpl;     
    21.     }     
    22.      
    23.     @Override     
    24.     public void queryCount() {     
    25.         System.out.println("事务处理之前");     
    26.         // 调用委托类的方法;     
    27.         countImpl.queryCount();     
    28.         System.out.println("事务处理之后");     
    29.     }     
    30.      
    31.     @Override     
    32.     public void updateCount() {     
    33.         System.out.println("事务处理之前");     
    34.         // 调用委托类的方法;     
    35.         countImpl.updateCount();     
    36.         System.out.println("事务处理之后");     
    37.      
    38.     }     
    39.      
    40. }  
    41.  
       
      4.TestCount.java
       
      1. Java代码   
      2. package net.battier.test;     
      3. import net.battier.dao.impl.CountImpl;     
      4. import net.battier.dao.impl.CountProxy;     
      5. /**   
      6.  *测试Count类   
      7.  *    
      8.  * @author Administrator   
      9.  *    
      10.  */     
      11. public class TestCount {     
      12.     public static void main(String[] args) {     
      13.         CountImpl countImpl = new CountImpl();     
      14.         CountProxy countProxy = new CountProxy(countImpl);     
      15.         countProxy.updateCount();     
      16.         countProxy.queryCount();     
      17.     }     
      18. }    
  • 相关阅读:
    哈夫曼(Huffman)编码
    面向对象的3个基本要素和5个基本设计原则(整理)
    面向对象设计原则OO
    Java多线程中start()和run()的区别
    HBase入门
    SparkGraphXTest.scala
    IntellijIdea中常用的快捷键
    SparkSQLTest.scala
    SparkStreamingTest.scala
    (转)理解POST和PUT的区别,顺便提下RESTful
  • 原文地址:https://www.cnblogs.com/wang01/p/11753972.html
Copyright © 2011-2022 走看看