J2EE实验报告7Spring的IOC.docx
《J2EE实验报告7Spring的IOC.docx》由会员分享,可在线阅读,更多相关《J2EE实验报告7Spring的IOC.docx(11页珍藏版)》请在冰点文库上搜索。
J2EE实验报告7Spring的IOC
J2EE实验报告
学号
姓名
班级
上课地点
教师
上课时间
实验八Spring的IOC
1.实验目的
、掌握Spring框架的建立步骤;
、掌握Spring的Ioc注入方式:
传值注入和构造注入;
、掌握Spring的静态工厂注入方式;
、掌握Spring的实例工厂注入方式。
2.实验环境
MyEclipse
WindowXP
MySQL
4.教师批改意见
签字:
日期:
成绩
实验内容
1功能描述
、掌握Spring框架的建立步骤;
、掌握Spring的Ioc注入方式:
传值注入和构造注入;
、掌握Spring的静态工厂注入方式;
、掌握Spring的实例工厂注入方式。
2实验步骤
搭建Spring框架
(0)新建webproject项目,项目名称自定义(我取名为EX_Ioc);
(1)将spring需要的jar包拷贝到______下;
(2)在src下新建文件
xmlns=""
xmlns:
xsi=""
xmlns:
p=""
xmlns:
aop=""
xsi:
schemaLocation="
">
注入普通类及属性
(1)在src下新增包,在该包下新建类:
packageclassPerson{
privateStringname;
publicvoidsayHello(){
"hello,iam"+name);
}
//省略getset方法
}
(2)在文件中添加配置
--frist配置简单类及属性-->
(3)编写测试代码
在src下新增包,在该包下新建类:
packageclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("");
Personperson=(______)("______");
();
}
}
(4)运行测试代码,查看结果。
配置类及使用bean--传值注入
(1)在src下新增包,在该包下新建接口、和类、、、
packageinterfaceIPerson{
publicvoiduserAxe();
}
packageinterfaceIAxe{
publicvoidchop();
}
packageclassChineseimplementsIPerson{
privateIAxeaxe;
publicvoiduseAxe(){
();
}
}
packageclassAmericanimplementsIPerson{
privateIAxeaxe;
publicvoiduseAxe(){
();
}
}
packageclassSteelAxeimplementsIAxe{
publicvoidchop(){
"steelAxeisquick!
!
!
");
}
}
packageclassStoneAxeimplementsIAxe{
publicvoidchop(){
"stoneAxeisslow!
!
!
");
}
}
(2)在文件中添加配置
--second配置类及使用bean-->
(3)编写测试代码
修改类:
packageclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("");
//second配置类及使用bean
Chinesechinese=(Chinese)("____");
();
Americanamerican=(American)("____");
();
}
}
(4)运行测试代码,查看结果。
配置类及使用bean--构造注入
(1)在包下,新建类
packageclassFranceimplementsIPerson{
privateIAxeaxe;
privateIAxeaxe2;
privateStringname;
publicFrance(){
}
publicFrance(IAxeaxe,IAxeaxe2,Stringname){
=axe;
=axe2;
=name;
}
publicvoiduseAxe(){
();
();
}
}
(2)在文件中添加配置
(3)编写测试代码
修改类:
packageclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("");
//构造注入
Francefrance=(France)("_____");
();
}
}
(4)运行测试代码,查看结果。
静态工厂注入
(1)在src下新增包,在该包下新建类、、和接口
packageinterfaceIBeing{
publicvoid___________;
}
packageinterfaceDogimplementsIBeing{
privateStringname;
publicvoidsayHello(){
"Hello,iamdog!
Mynameis:
"+name);
}
}
packageinterfaceCatimplementsIBeing{
privateStringname;
publicvoidsayHello(){
"Hello,iamcat!
Mynameis:
"+name);
}
}
packageclassFactory{
publicstaticIBeinggetBeing(Stringtype){
if("____")){
returnnewDog();
}else{
returnnewCat();
}
}
}
(2)在文件中添加配置
--静态工厂生成bean-->
(3)编写测试代码
修改类:
packageclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("");
//静态工厂生成bean
Dogdog=(Dog)("____");
();
Catcat=(Cat)("____");
();
}
}
(4)运行测试代码,查看结果。
实例工厂注入
(1)在src下新增包,在该包下新建类、、和接口
packagefourth;
publicinterfaceIPerson{
publicvoid______________();
}
packagefourth;
publicinterfaceChineseimplementsIPerson{
privateStringname;
publicvoidsayHello(){
"Hello,iamchinese!
Mynameis:
"+name);
}
}
packagefourth;
publicinterfaceAmericanimplementsIPerson{
privateStringname;
publicvoidsayHello(){
"Hello,iamamerican!
Mynameis:
"+name);
}
}
packageclassFactory{
publicIPersongetPerson(Stringtype){
if("____")){
returnnewChinese();
}else{
returnnew________;
}
}
}
(2)在文件中添加配置
--实例工厂构造bean-->
(3)编写测试代码
修改类:
packageclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("");
//实例工厂生成bean
Chinesechn=___________;
();
Americaname=___________;
();
}
}
(4)运行测试代码,查看结果。
3心得体会
不得放空