spring 中 bean的初使用+bean的继承+bean调用前…

2020-03-13 16:05:28来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

spring 中 bean的初使用+bean的继承+bean调用前与调用后的调用

新建Product 的bean:

package com.my;

public class Product {
 
 private String aa;
 private String cc;
 private String ee;
   
 public void setAa(String aa){
  this.aa=aa;
 }
 public void setCc(String cc){
  this.cc=cc;
 }
 public void setEe(String ee){
  this.ee=ee;
 }
 
 
 

 
 public String getAa(){
  return aa;
 }
 public String getCc(){
  return cc;
 }
 
 public String getEe(){
  return ee;
 }
 
 public void init(){
  System.out.println("initialize");
 }
 
 public void destroy(){
  System.out.println("destroy");
 }
 

}

在src新建Bean.xml:

<bean id="product" class="com.my.Product" init-method="init" destroy-method="destroy">  //init-method: bean调用前调用  destroy-method:bean调用后调用
          <property name="aa" value="bb"> </property>   
          <property name="cc" value="dd"></property>
          <property name="ee" value="ff"></property>
</bean>

下一步:

新建Mymy:

package com.my;
import org.springframework.context.ApplicationContext;
import org.junit.Test;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import com.my.ExtendProduct;


public class Mymy {
 
 public static void main(String[] args){   //main方法可以作为调试的方法
  AbstractApplicationContext context=new ClassPathXmlApplicationContext(   //调用bean.xml
    "Bean.xml"
    );
  Product product= (Product) context.getBean("product");         
  System.out.println (product.getAa());                 //调用Product bean中的方法

 context.registerShutdownHook();   //调用bean调用前的方法和调用后的方法

 

}

}

关于bean中的继承:

Bean.xml:

<bean id="product" class="com.my.Product" init-method="init" destroy-method="destroy">
          <property name="aa" value="bb"> </property>   
          <property name="cc" value="dd"></property>
          <property name="ee" value="ff"></property>
</bean>


<bean id="extendproduct" class="com.my.ExtendProduct" init-method="init" destroy-method="destroy" parent="product"> //继承上一个bean
     <property name="aa" value="ii"> </property>   
          <property name="cc" value="jj"></property>
          <property name="ee" value="kk"></property>
       <property name="gg" value="hh"></property>

</bean>

都要有对应的类:

package com.my;

public class ExtendProduct {  //即为继承的类

 private String aa;
 private String cc;
 private String ee;
 private String gg;
 
 public void setGg(String gg){
  this.gg=gg;
 }
 
 public String getGg(){
  return gg;
 }
   
 public void setAa(String aa){
  this.aa=aa;
 }
 public void setCc(String cc){
  this.cc=cc;
 }
 public void setEe(String ee){
  this.ee=ee;
 }
 
 
 

 
 public String getAa(){
  return aa;
 }
 public String getCc(){
  return cc;
 }
 
 public String getEe(){
  return ee;
 }
 
 public void init(){
  System.out.println("initialize");
 }
 
 public void destroy(){
  System.out.println("destroy");
 }
 

}

调用:

package com.my;
import org.springframework.context.ApplicationContext;
import org.junit.Test;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import com.my.ExtendProduct;


public class Mymy {
 
 public static void main(String[] args){
  AbstractApplicationContext context=new ClassPathXmlApplicationContext(
    "Bean.xml"
    );
  Product product= (Product) context.getBean("product");
  System.out.println (product.getAa());
 
  
  ExtendProduct extendProduct=(ExtendProduct)context.getBean("extendproduct");     //继承的bean的调用
  System.out.println(extendProduct.getAa()+extendProduct.getCc()+extendProduct.getEe()+extendProduct.getGg());  
 // context.registerShutdownHook();

}

}

 


原文链接:https://www.cnblogs.com/broadencoder/p/12487981.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:深入拆解Java虚拟机,就靠这本电子书了

下一篇:Java中的基本数据类型