J2EE实验报告7Spring的IOC.docx
《J2EE实验报告7Spring的IOC.docx》由会员分享,可在线阅读,更多相关《J2EE实验报告7Spring的IOC.docx(11页珍藏版)》请在冰豆网上搜索。
![J2EE实验报告7Spring的IOC.docx](https://file1.bdocx.com/fileroot1/2023-1/5/05557bce-890a-4633-a204-38182676b8d1/05557bce-890a-4633-a204-38182676b8d11.gif)
J2EE实验报告7Spring的IOC
J2EE实验报告
学号
姓名
班级
上课地点
教师
上课时间
实验八Spring的IOC
1.实验目的
1.1、掌握Spring框架的建立步骤;
1.2、掌握Spring的Ioc注入方式:
传值注入和构造注入;
1.3、掌握Spring的静态工厂注入方式;
1.4、掌握Spring的实例工厂注入方式。
2.实验环境
2.1MyEclipse
2.2WindowXP
2.3MySQL
4.教师批改意见
签字:
日期:
成绩
实验内容
1功能描述
1.1、掌握Spring框架的建立步骤;
1.2、掌握Spring的Ioc注入方式:
传值注入和构造注入;
1.3、掌握Spring的静态工厂注入方式;
1.4、掌握Spring的实例工厂注入方式。
2实验步骤
2.1搭建Spring框架
(0)新建webproject项目,项目名称自定义(我取名为EX_Ioc);
(1)将spring需要的jar包拷贝到______下;
(2)在src下新建applicationContext.xml文件
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="http:
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
aop="http:
//www.springframework.org/schema/aop"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//www.springframework.org/schema/aop
http:
//www.springframework.org/schema/aop/spring-aop-3.0.xsd">
2.2注入普通类及属性
(1)在src下新增包cn.edu.xmut.first,在该包下新建类Person.java:
Person.java
packagecn.edu.xmut.first;
publicclassPerson{
privateStringname;
publicvoidsayHello(){
System.out.println("hello,iam"+name);
}
//省略getset方法
}
(2)在applicationContext.xml文件中添加配置
--frist配置简单类及属性-->
(3)编写测试代码
在src下新增包cn.edu.xmut.test,在该包下新建类MyTest.java:
packagecn.edu.xmut.test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
importcn.edu.xmut.HelloSpring.app.frist.Person;
publicclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("______.xml");
Personperson=(______)apc.getBean("______");
person.sayHello();
}
}
(4)运行测试代码,查看结果。
2.3配置类及使用bean--传值注入
(1)在src下新增包cn.edu.xmut.second,在该包下新建接口IPerson.java、IAxe.java和类Chinese.java、American.java、SteelAxe.java、Stone.java
IPerson.java
packagecn.edu.xmut.second;
publicinterfaceIPerson{
publicvoiduserAxe();
}
IAxe.java
packagecn.edu.xmut.second;
publicinterfaceIAxe{
publicvoidchop();
}
Chinese.java
packagecn.edu.xmut.second;
publicclassChineseimplementsIPerson{
privateIAxeaxe;
publicvoiduseAxe(){
axe.chop();
}
}
American.java
packagecn.edu.xmut.second;
publicclassAmericanimplementsIPerson{
privateIAxeaxe;
publicvoiduseAxe(){
axe.chop();
}
}
SteelAxe.java
packagecn.edu.xmut.second;
publicclassSteelAxeimplementsIAxe{
publicvoidchop(){
System.out.println("steelAxeisquick");
}
}
StoneAxe.java
packagecn.edu.xmut.second;
publicclassStoneAxeimplementsIAxe{
publicvoidchop(){
System.out.println("stoneAxeisslow");
}
}
(2)在applicationContext.xml文件中添加配置
--second配置类及使用bean-->
(3)编写测试代码
修改类MyTest.java:
packagecn.edu.xmut.test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("______.xml");
//second配置类及使用bean
Chinesechinese=(Chinese)apc.getBean("____");
chinese.useAxe();
Americanamerican=(American)apc.getBean("____");
american.useAxe();
}
}
(4)运行测试代码,查看结果。
2.3配置类及使用bean--构造注入
(1)在包cn.edu.xmut.second下,新建类France.java
France.java
packagecn.edu.xmut.second;
publicclassFranceimplementsIPerson{
privateIAxeaxe;
privateIAxeaxe2;
privateStringname;
publicFrance(){
}
publicFrance(IAxeaxe,IAxeaxe2,Stringname){
this.axe=axe;
this.axe2=axe2;
this.name=name;
}
publicvoiduseAxe(){
axe.chop();
axe2.chop();
System.out.println(name);
}
}
(2)在applicationContext.xml文件中添加配置
(3)编写测试代码
修改类MyTest.java:
packagecn.edu.xmut.test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("______.xml");
//构造注入
Francefrance=(France)apc.getBean("_____");
france.useAxe();
}
}
(4)运行测试代码,查看结果。
2.4静态工厂注入
(1)在src下新增包cn.edu.xmut.third,在该包下新建类Dog.java、Cat.java、Factory.java和接口IBeing.java
IBeing.java
packagecn.edu.xmut.third;
publicinterfaceIBeing{
publicvoid___________;
}
Dog.java
packagecn.edu.xmut.third;
publicinterfaceDogimplementsIBeing{
privateStringname;
publicvoidsayHello(){
System.out.println("Hello,iamdog!
Mynameis:
"+name);
}
}
Cat.java
packagecn.edu.xmut.third;
publicinterfaceCatimplementsIBeing{
privateStringname;
publicvoidsayHello(){
System.out.println("Hello,iamcat!
Mynameis:
"+name);
}
}
Factory.java
packagecn.edu.xmut.third;
publicclassFactory{
publicstaticIBeinggetBeing(Stringtype){
if(type.equalsIgnoreCase("____")){
returnnewDog();
}else{
returnnewCat();
}
}
}
(2)在applicationContext.xml文件中添加配置
--静态工厂生成bean-->
(3)编写测试代码
修改类MyTest.java:
packagecn.edu.xmut.test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("______.xml");
//静态工厂生成bean
Dogdog=(Dog)apc.getBean("____");
dog.sayHello();
Catcat=(Cat)apc.getBean("____");
cat.sayHello();
}
}
(4)运行测试代码,查看结果。
2.5实例工厂注入
(1)在src下新增包cn.edu.xmut.fourth,在该包下新建类Chinese.java、American.java、Factory.java和接口IPerson.java
IPerson.java
packagecn.edu.xmut.fourth;
publicinterfaceIPerson{
publicvoid______________();
}
Chinese.java
packagecn.edu.xmut.fourth;
publicinterfaceChineseimplementsIPerson{
privateStringname;
publicvoidsayHello(){
System.out.println("Hello,iamchinese!
Mynameis:
"+name);
}
}
American.java
packagecn.edu.xmut.fourth;
publicinterfaceAmericanimplementsIPerson{
privateStringname;
publicvoidsayHello(){
System.out.println("Hello,iamamerican!
Mynameis:
"+name);
}
}
Factory.java
packagecn.edu.xmut.fourth;
publicclassFactory{
publicIPersongetPerson(Stringtype){
if(type.equalsIgnoreCase("____")){
returnnewChinese();
}else{
returnnew________;
}
}
}
(2)在applicationContext.xml文件中添加配置
--实例工厂构造bean-->
(3)编写测试代码
修改类MyTest.java:
packagecn.edu.xmut.test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassMyTest{
publicstaticvoidmain(String[]args){
ApplicationContextapc=new______("______.xml");
//实例工厂生成bean
Chinesechn=___________;
chn.sayHello();
Americaname=___________;
ame.sayHello();
}
}
(4)运行测试代码,查看结果。
3心得体会
不得放空