Spring:byName,byType注入演示 以及父类的使用
来源:互联网 发布:做淘宝卖小饰品赚钱吗 编辑:程序博客网 时间:2024/06/05 06:29
加载的jar有:
log4j-1.2.16.jar
org.springfaramework.asm-3.0.5.release.jar
org.springfaramework.beans-3.0.5.release.jar
org.springfaramework.context-3.0.5.release.jar
org.springfaramework.core-3.0.5.release.jar
org.springfaramework.expression-3.0.5.release.jar
commons-logging-1.1.1.jar
文件结构图如下:
代码演示如下:
NameBean.java
package org.baicai.spring.byName;
public class NameBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ByNameOne.java
package org.baicai.spring.byName;
public class ByNameOne {
private NameBean nameBean;
public NameBean getNameBean() {
return nameBean;
}
public void setNameBean(NameBean nameBean) {
this.nameBean = nameBean;
}
public void say()
{
System.out.println("ByNameOne:"+nameBean.getName());
}
}
ByNameTwo.java
package org.baicai.spring.byName;
public class ByNameTwo {
private NameBean nameBean;
public NameBean getNameBean() {
return nameBean;
}
public void setNameBean(NameBean nameBean) {
this.nameBean = nameBean;
}
public void say()
{
System.out.println("ByNameTwo:"+nameBean.getName());
}
}
TypeBean.java
package org.baicai.spring.byType;
public class TypeBean {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
ByTypeOne.java
package org.baicai.spring.byType;
public class ByTypeOne {
private TypeBean one;
public TypeBean getOne() {
return one;
}
public void setOne(TypeBean one) {
this.one = one;
}
public void showOne()
{
System.out.println("One 类型:"+one.getType());
}
}
ByTypeTwo.java
package org.baicai.spring.byType;
public class ByTypeTwo {
private TypeBean two;
public TypeBean getTwo() {
return two;
}
public void setTwo(TypeBean two) {
this.two = two;
}
public void showTwo()
{
System.out.println("two 类型:"+two.getType());
}
}
SuperBean.java
package org.baicai.spring.superclass;
public class SuperBean {
private String info;
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
ExtendOne.java
package org.baicai.spring.superclass;
public class ExtendOne extends SuperBean {
public void show()
{
System.out.println("我是一个继承者!我叫One");
System.out.println(super.getInfo());
}
}
ExtendTwo.java
package org.baicai.spring.superclass;
public class ExtendTwo extends SuperBean{
public void show()
{
System.out.println("我是另外一个继承者!我叫Two!");
System.out.println(super.getInfo());
}
}
Demo.java
package org.baicai.spring.demo;
import org.baicai.spring.byName.ByNameOne;
import org.baicai.spring.byName.ByNameTwo;
import org.baicai.spring.byType.ByTypeOne;
import org.baicai.spring.byType.ByTypeTwo;
import org.baicai.spring.superclass.ExtendOne;
import org.baicai.spring.superclass.ExtendTwo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Demo {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("/context*.xml");
AbstractApplicationContext ac = (AbstractApplicationContext) context;
ac.registerShutdownHook();
ByNameOne nameOne=context.getBean("nameOne",ByNameOne.class);
nameOne.say();
ByNameTwo nameTwo=context.getBean("nameTwo",ByNameTwo.class);
nameTwo.say();
System.out.println("====================================================");
ByTypeOne typeOne=context.getBean("typeOne",ByTypeOne.class);
typeOne.showOne();
ByTypeTwo typeTwo=context.getBean("typeTwo",ByTypeTwo.class);
typeTwo.showTwo();
System.out.println("====================================================");
ExtendOne extendOne=context.getBean("extendOne",ExtendOne.class);
extendOne.show();
ExtendTwo extendTwo=context.getBean("extendTwo",ExtendTwo.class);
extendTwo.show();
}
}
context_byName.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-3.0.xsd"
default-autowire="byName">
<!--default-autowire="byName" 表示自动注入名称和bean相同的属性 -->
<bean id="nameBean" class="org.baicai.spring.byName.NameBean">
<property name="name" value="张三"></property>
</bean>
<!-- 下面的两个bean没有配置属性值,但由于属性名称和容器中的id(nameBean)一致,将会把nameBean自动注入给下面两个类 -->
<bean id="nameOne" class="org.baicai.spring.byName.ByNameOne"></bean>
<bean id="nameTwo" class="org.baicai.spring.byName.ByNameTwo"></bean>
</beans>
context_byType.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-3.0.xsd"
default-autowire="byType">
<!--default-autowire="byName" 表示自动注入类型和bean相同的属性 -->
<bean id="typeBean" class="org.baicai.spring.byType.TypeBean">
<property name="type" value="自定义类型"></property>
</bean>
<!-- 下面的两个bean没有配置属性值,但由于属性类型和容器中的id(typeBean)一致,将会把typeBean类型和其它class属性类型一致的值自动注入给该类 -->
<bean id="typeOne" class="org.baicai.spring.byType.ByTypeOne"></bean>
<bean id="typeTwo" class="org.baicai.spring.byType.ByTypeTwo"></bean>
</beans>
context_super.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-3.0.xsd">
<!-- 注册一个抽象的父类型,abstract=“true” 表示类没有办法初始化 -->
<bean id="superBean" class="org.baicai.spring.superclass.SuperBean" abstract="true">
<!-- 仍然可以注入属性 -->
<property name="info" value="dream"></property>
</bean>
<!-- 字义子类,使用parent属性表示父类型 -->
<bean id="extendOne" class="org.baicai.spring.superclass.ExtendOne" parent="superBean"></bean>
<bean id="extendTwo" class="org.baicai.spring.superclass.ExtendTwo" parent="superBean"></bean>
</beans>
运行结果如下:
- Spring:byName,byType注入演示 以及父类的使用
- Spring注入中byType和byName的总结
- Spring注入中byType和byName的总结
- Spring注入中byType和byName的总结
- Spring的自动装配(byName;byType)
- Spring的自动装配(byName;byType)
- Spring的自动装配(byName;byType)
- Spring 中的byName与 byType
- Spring 中的byName与 byType
- Spring 中的byName与 byType
- Spring中的byName与byType
- 玩转Spring----autowire的bytype 和byname 装配
- Bean的ByName和ByType
- Java Spring Tutorial -- autowire byName, byType, constructor
- Spring Autowire自动装配byName和byType
- Spring自动注入byType
- Spring自动装配之byName和byType【Spring入门】
- spring 自动装配 default-autowire="byName/byType"
- 理解和认识udev
- ExtJS中的Ajax
- weka 3.7 中使用LIBSVM和liblinear
- linux_2.6.35_wait和wakeup源码阅读
- zoj 3430 Detect the Virus
- Spring:byName,byType注入演示 以及父类的使用
- 统计问题(递推)
- Windows 2003路由设置
- ajax技术核心
- 十四周任务2
- Windows server 2003 IP路由配置
- 用 C++ 创建简单的 Win32 服务程序
- android之activity跳转 窗口跳转
- 知识的诅咒与背景植入