1、完成例题1.3spring入门程序。修改根包为edu.javaee.spring
(1)创建一个新的project,将spring核心jar包和依赖jar包拷入lib。(2)创建新package,再创建一个新的interface并命名为UserDao:
package edu.javaee.spring;
public interface UserDao{
public void say();
}
(3)创建一个新的接口UserDaoimpl实现类:
package edu.javaee.spring;
public class UserDaoimpl implements UserDao {
@Override
public void say() {
System.out.println(“userDao say hello World!”);
}
}
(4)建立Spring配置文件applicationContext.xml,并在配置文件中创建ID为userDao的bean:
<?xml version="1.0" encoding="UTF-8"?>
(5)创建新的class TestIoc测试类:
package edu.javaee.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationCont ext;
public class TestIoc {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//1、初始化spring容器,加载配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“applicationContext.xml”);
//2、通过容器获取userDao实例
UserDao userDao = (UserDao) applicationContext.getBean(“userDao”);
//3、调用实例方法
userDao.say();
}
}
运行结果:userDao say hello World!
2、spring的优点是什么?
(1)非侵入式设计
(2)方便解耦、简化开发
(3)支持AOP
(4)支持声明式事务处理
(5)方便程序测试
(6)方便集成各种优秀框架
(7)降低Java EE API的使用难度
3、spring的Ioc和DI的概念理解?
IoC(inversion of contorl),对象创建权利转移Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。