参考答案
Spring框架的作用和优点如下:
1. Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入;
2. Spring提供的IoC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级;
3. Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发。
参考答案
1. 可以通过<bean>定义的scope属性指定Bean对象的作用域或者使用注解@Scope指定Bean对象的作用域。
2. 默认Bean对象的作用域为singleton。
参考答案
步骤一:新建工程,导入jar包
新建名为SpringIoC_01_exec的web工程,在该工程导入如图-1所示的5个jar包。
图– 1
步骤二:新建DeptDAO,创建对部门的增删改操作的接口
代码如下所示:
packageorg.tarena.dao; public interface DeptDAO { public void add(); public void delete(); public void update(); }
步骤三:新建该类JdbcDeptDAO,模拟JDBC实现DeptDAO接口
代码如下所示:
packageorg.tarena.dao; public class JdbcDeptDAO implements DeptDAO{ public void add() { System.out.println("利用JDBC技术保存Dept信息"); } public void delete() { System.out.println("利用JDBC技术删除Dept信息"); } public void update() { System.out.println("利用JDBC技术更新Dept信息"); } }
步骤四:新建DeptService类
新建DeptService类,在该类中调用DeptDAO的add方法、update方法以及delete方法,并添加setDao方法,为DeptDAO的引用dao赋值,代码如下所示:
packageorg.tarena.service; importorg.tarena.dao.DeptDAO; public class DeptService { privateDeptDAOdao; public void setDao(DeptDAOdao) { this.dao = dao; } public void addDept() { System.out.println("添加部门操作处理"); dao.add(); } public void deleteDept() { System.out.println("删除部门操作处理"); dao.delete(); } public void updateDept() { System.out.println("修改部门操作处理"); dao.update(); } }
步骤五:新建applicationContext.xml
该文件的核心代码如图-2所示。
图– 2
步骤六:新建类Test
新建类Test中,调用DeptService的addDept方法、updateDept方法以及deleteDept方法,进而调用DeptDAO的add方法、update方法以及delete方法,代码如图-3所示。
图– 3
步骤七:运行Test类
运行Test类,控制台的输出结果如图-4所示。
图 - 4
从输出结果可以看出调用到了DeptDAO接口中的add方法、update方法以及delete方法,使用setter注入的方式将DeptDAO给DeptService注入成功。
DeptDAO接口的完整代码如下所示:
packageorg.tarena.dao; public interface DeptDAO { public void add(); public void delete(); public void update(); }
JdbcDeptDAO类的完整代码如下所示:
packageorg.tarena.dao; public class JdbcDeptDAO implements DeptDAO{ public void add() { System.out.println("利用JDBC技术保存Dept信息"); } public void delete() { System.out.println("利用JDBC技术删除Dept信息"); } public void update() { System.out.println("利用JDBC技术更新Dept信息"); } }
DeptService类的完整代码如下所示:
packageorg.tarena.service; importorg.tarena.dao.DeptDAO; public class DeptService { privateDeptDAOdao; public void setDao(DeptDAOdao) { this.dao = dao; } public void addDept() { System.out.println("添加部门操作处理"); dao.add(); } public void deleteDept() { System.out.println("删除部门操作处理"); dao.delete(); } public void updateDept() { System.out.println("修改部门操作处理"); dao.update(); } }
Test类的完整代码如下所示:
packageorg.tarena.test; importorg.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; importorg.tarena.service.DeptService; public class Test { public static void main(String[] args) throws Exception { String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); DeptService service = ac.getBean("deptService", DeptService.class); service.addDept(); service.updateDept(); service.deleteDept(); } }
applicationContext.xml文件的完整代码如下所示:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd"> <bean id="jdbcDeptDao" class="org.tarena.dao.JdbcDeptDAO"> </bean> <!-- setter注入 --> <bean id="deptService" class="org.tarena.service.DeptService"> <property name="dao" ref="jdbcDeptDao"> </property> </bean> </beans>