
- spring 是一个开源的免费空间
- spring是一个轻量级、非入侵式的框架
- 控制翻转(IOC)、面向切面编程(AOP)
- 支持事务的处理,对框架的整合
spring是一个轻量级的控制翻转和面向切面编程的框架
1.2 原来方式- UserDao接口–UserDaoImpl实现类
- UserService业务接口-UserServicempl业务实现类
- 用户实际调用的是service层,service层调用dao层
如果在dao层增加了新的方法,又想在service调用该方法,则需在service层改变代码–新建实现类
因为你在代码里面写死了,新增加一个需求,就要改一个代码,牵一发动全身
private UserDao dao=new UserDaoImpl();
private UserDao dao1=new UserDaoMySqlImpl();
public void getUser() {
dao.getUser();
dao1.getUser();
}
1.3spring方式
利用set进行动态的实现注入
private UserDao dao;
public void setDao(UserDao dao) {
this.dao = dao;
}
-
之前,所有的东西都是由程序去进行控制创建
-
使用set注入后,程序不在有主动性,而是被动的接收对象,把主动权交给了调用者
**我们不需要再管理对象的创建,系统的耦合性降低,可以专注于在业务的实现上–这是IOC的原型
异常:class path resource [beans.xml] cannot be opened because it does not exist
路径错误 换相对路径即可 来自源根的路径
**我们不需要再在程序中更改,要实现不同的 *** 作,只需要在xml配置文件修改 **
IOC:对象由Spring创建,管理,装配!
- 反转:程序本身不创建对象,而变成被动的接收对象
- 控制:之前是程序控制创建对象,现在用spring,由spring控制
- 依赖注入:利用set方法进行注入的(对象,成员变量)
测试:
@Test
public void test1(){
ApplicationContext Context= new ClassPathXmlApplicationContext("IOC\com\beans.xml");
UserServiceImpl userServiceImpl = (UserServiceImpl) Context.getBean("UserServiceImpl");
userServiceImpl.getUser();
}
1.4 IOC创建对象方式
- 使用无参构造方法创建对象——默认
- 使用有参构造方法创建对象——注入属性
在配置文件加载时候,spring容器管理的对象就已经初始化了
spring会创建所有的对象(默认调用无参构造方法)
1.5 依赖注入-
构造器注入
1.4
-
set方式注入
-
set注入要求Bean提供一个默认的构造函数,并为需要注入的属性提供对应的Setter方法。
-
Spring先调用Bean的默认构造函数实例化Bean对象,然后通过反射的方式调用Setter方法注入属性值。
-
假设Bean显示定义了一个带参的构造函数,则需要同时提供一个默认无参的构造函数,否则使用属性注入时将抛出异常。
围城 白夜行
敲代码 睡觉 王者农药 英雄联盟 0001 0001
private String name; private Address address;//引用类型 private String[] books;//数组 private Listhobbys; private Map card; private Set games; private Properties info; private String wife; @Override public String toString() { return "Students{" + "name='" + name + ''' + ", address=" + address.toString() + ", books=" + Arrays.toString(books) + ", hobbys=" + hobbys + ", card=" + card + ", games=" + games + ", info=" + info + ", wife='" + wife + ''' + '}'; }
@Test
public void test2(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
Students student = (Students) context.getBean("student");
System.out.println(student.toString());
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)