Picoconntainer的几个问题

zhouzcy 2006-07-10 11:55:52
Car.java

public class Car {
private String name;

private Wheel wheel;

private Engine engine;

public Car(){}
public Car(Engine engine) {
this.engine = engine;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Wheel getWheel() {
return wheel;
}

public void setWheel(Wheel wheel) {
this.wheel = wheel;
}

public String toString() {
return "name:" + name + "\n" +
engine.toString() + "\n"
+ wheel.toString();
}
}

-----------------------------------------------------------------------------------------
Engine.java

public class Engine {
public String toString() {
return "Engine";
}
}

-----------------------------------------------------------------------------------------
Wheel.java

public class Wheel {
public String toString() {
return ("wheel");
}
}

-----------------------------------------------------------------------------------------
测试代码段1:

public static void main(String[] args) {
MutablePicoContainer pico = new DefaultPicoContainer(
new SetterInjectionComponentAdapterFactory());
pico.registerComponentImplementation(Engine.class);

pico.registerComponentImplementation(Car.class);
pico.registerComponentImplementation(Wheel.class);
pico.registerComponentImplementation(String.class);

Car car = (Car) pico.getComponentInstance(Car.class);

System.out.println(car.toString());
}
将默认构造函数注入改为setter注入,那么engine无法注入
我想同时使用构造函数注入和setter注入可以吗?
另外我给engine加上setter方法,这样是可以通过的,但如果我把
pico.registerComponentImplementation(String.class);
去掉会报错org.picocontainer.defaults.UnsatisfiableDependenciesException异常
但我不想让name也使用setter注入,该怎么办?

...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdoom 2006-07-12
  • 打赏
  • 举报
回复
先用默认构造一个实例,实例在SETTER就是了
zhouzcy 2006-07-12
  • 打赏
  • 举报
回复
up
showme99 2006-07-10
  • 打赏
  • 举报
回复
www.ehr99.com
很简捷、实用的一个网站
Bluce 2006-07-10
  • 打赏
  • 举报
回复
up
zhouzcy 2006-07-10
  • 打赏
  • 举报
回复
up
linshaojie 2006-07-10
  • 打赏
  • 举报
回复
先up再看,。,~

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧