4.笔记JAVA框架学习——内部Bean
也可以在属性或构造器里包含Bean 的声明, 这样的 Bean 称为内部 Bean
当 Bean 实例仅仅给一个特定的属性使用时, 可以将其声明为内部 Bean. 内部 Bean 声明直接包含在 <property> 或 <constructor-arg> 元素里, 不需要设置任何 id 或 name 属性
内部 Bean 不能使用在任何其他地方,不能被外部引用
示例
代码还是代码上节中的示例代码,然后在app.xml文件中增加如下:
<!-- 声明使用内部 bean -->
<bean id="service2"class="Service">
<property name="dao">
<!-- 内部 bean, 类似于匿名内部类对象. 不能被外部的 bean 来引用, 也没有必要设置 id 属性 -->
<bean class="Dao">
<property name="dataSource"value="c3p0"></property>
</bean>
</property>
</bean>
在main.java如下:
import org.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclass Main {
publicstaticvoid main(String[]args) {
//1. 创建Spring 的 IOC 容器
ApplicationContext apx = newClassPathXmlApplicationContext("app.xml");
Service service = (Service) apx.getBean("service2");
System.out.println(service);
service.save();
}
}
执行如下:
Hello:Jerry
Dao'sConstructor...
Service@6325a3ee
Service'ssave
save by c3p0