您现在的位置:首页 >> 基础 >> Java编程 >> 内容

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

时间:2020-3-18 8:46:16

  核心提示:新建Product的bean:package com.my;public class Product {private String aa;private String cc;private Stri...

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

}

}

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号