java引用框架,3.笔记JAVA框架学习——Bean引用其他Bean

3.笔记JAVA框架学习——Bean引用其他Bean

在配置Bean的时候,其实一直没说明什么是Bean,这样做是不对的。

在此处补齐。

JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。

配置 bean

l  配置形式:基于 XML 文件的方式;基于注解的方式

l  Bean 的配置方式:通过全类名(反射)、通过工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean

l  IOC 容器 BeanFactory & ApplicationContext 概述

l  依赖注入的方式:属性注入;构造器注入

l  注入属性值细节

l  自动转配

l  bean 之间的关系:继承;依赖

l  bean 的作用域:singleton;prototype;WEB 环境作用域

l  使用外部属性文件

l  spEL

l  IOC 容器中 Bean 的生命周期

l  Spring 4.x 新特性:泛型依赖注入

字面值

l  字面值:可用字符串表示的值,可以通过 元素标签或 value 属性进行注入。

l  基本数据类型及其封装类、String等类型都可以采取字面值注入的方式

l  若字面值中包含特殊字符,可以使用 把字面值包裹起来。

引用其它 Bean

在上篇基础上,新增Dao.java文件如下:

publicclassDao {

privateStringdataSource;

publicDao(StringdataSource) {

super();

this.dataSource=dataSource;

}

publicvoidsetDataSource(StringdataSource) {

this.dataSource=dataSource;

}

publicvoidsave(){

System.out.println("save by "+dataSource);

}

publicDao() {

System.out.println("Dao's Constructor...");

}

}

增加Service.java如下:

publicclassService {

privateDaodao;

publicvoidsetDao(Daodao) {

this.dao=dao;

}

publicDao getDao(){

returndao;

}

publicvoidsave(){

System.out.println("Service's save");

dao.save();

}

}

在app.xml中增加配置如下:

此外,main.java如下:

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

publicclassMain {

publicstaticvoidmain(String[]args) {

//1.创建Spring的IOC容器

ApplicationContextapx=newClassPathXmlApplicationContext("app.xml");

Service service= (Service)apx.getBean("service");

System.out.println(service);

service.save();

}

}

执行如下:

Hello:Jerry

Service@3a5ed7a6

Service'ssave

saveby testDao

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值