欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-18 19:08:09
新建Product 的bean: package com.my; public class Product { private String aa; private String cc; private String ee; public void setAa(String aa){ this.aa ......

新建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();

}

}