本文共 2073 字,大约阅读时间需要 6 分钟。
注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .
xml org.springframework spring-webmvc 5.2.7.RELEASE
public interface UserDao { public void getUser();}
public class UserDaoImpl implements UserDao{ public void getUser() { System.out.println("获取用户数据"); }}
public class UserDaoSqlImpl implements UserDao{ public void getUser() { System.out.println("Sql获取用户数据"); }}
public interface UserService { public void getUser();}
public class UserServiceImpl implements UserService{ private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void getUser() { userDao.getUser(); }}
public class Mytest { public static void main(String[] args) { ApplicationContext context1 = new ClassPathXmlApplicationContext("beans.xml"); UserServiceImpl userServiceImpl = (UserServiceImpl) context1.getBean("UserServiceImpl"); userServiceImpl.getUser(); }}
OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配 !
对象是由Spring创建的
对象的属性是由Spring容器设置的
这个过程就叫控制反转 (更方便,更解耦):
property:用来配置读取xml文件里面的对象,格式是键-值
import resource="{path}/beans.xml"/>
User user = context.getBean("user2", User.class); User user = context.getBean("user2", User.class);
当我写两个user2,输出还是一个
当一个bean的作用域为Prototype,表示一个bean定义对应多个对象实例。
Request、Session、application只能在web开发中使用
转载地址:http://zkazi.baihongyu.com/