您的位置:首页 > 编程语言 > Java开发

[Java] Spring3.0 setter 注入 / 留印象构造方法注入 7、8、9.avi

2014-01-12 11:36 381 查看
7, Spring 的两大核心 : (1) IOC (2) AOP

8, Spring 介绍 。 读 Spring API

问 :spring3.1 这个 spring.jar 怎么不在 dist 文件夹里,是不是还要额外下载jar包?

答 :spring3.0以上已经没有提供完整的spring包了,按功能模块被分解成了,实际开发时,选择你需要的包即可,core,beans,context,

在使用web开发中一般都需要被加入,如果你实际应用使用了aop等,这些包也要被加入。

9, // dependency injection - 依赖注入 示例程序中, UserService, DAO 都依赖于 容器的 注入

/* inversion of control 什么是控制反转?

(1), Service 成员 userDAO 控制在容器手里了,不用自己new实现。反转到容器那里去了!

(2), 原来编程控制的是实现,现在是接口,是抽象, 反转到抽象

(3), 你控制的是接口,而不是整个实现了!原来控制在自己手里,现在控制在别人的容器手里了。 “控制反转”

*/

@(1), 指定 XML, catalog 书写规范与提示 Spring_09 自动提示 马士兵.avi

注入类型

Spring_0300_IOC_Injection_Type

setter(重要)

构造方法(可以忘记)

接口注入(可以忘记)

@(2), 以上讲解的都是 setter 注入

UserService.java

package com.bjsxt.service;

import com.bjsxt.dao.UserDAO; // 抽象出的数据库管理层
import com.bjsxt.dao.impl.UserDAOImpl;
import com.bjsxt.model.User;

public class UserService { // 业务逻辑, 还可以设计权限, 抽象出一层 : 用户服务层, 用户管理层
private UserDAO userDAO;

public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public void add(User u) {
this.userDAO.save(u); // 添加用户会将用户添加到 DB 中。
}
/*
* public UserService(UserDAO userDAO) { super(); this.userDAO = userDAO; }
*/
}
UserServiceTest.java
package com.bjsxt.service;

import static org.junit.Assert.*;

import org.junit.Test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;

// dependency injection - 依赖注入   示例程序中, UserService, DAO 都依赖于 容器的 注入
// inversion of control 什么是控制反转? Service 成员 userDAO  控制在容器手里了,不用自己new实现。反转到容器那里去了!原来编程控制的是实现,现在是接口是抽象,反转到抽象
//   你控制的是接口,而不是整个实现了!原来控制在自己手里,现在控制在别人的容器手里了。 “控制反转”。
public class UserServiceTest {

@Test
public void testAdd() throws Exception {

ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

UserService service = (UserService) ctx.getBean("userService"); // new
// UserService();
User u = new User();
u.setUsername("zhangsan");
u.setPassword("zhangsan");
service.add(u);
}

}


beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 
<bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl">
<!-- collaborators and configuration for this bean go here -->
</bean>

<bean id="userService" class="com.bjsxt.service.UserService">
<property name="userDAO" ref="u"/>
</bean>

<!-- more bean definitions go here -->

</beans>





构造方法注入

UserService.java
package com.bjsxt.service;

import com.bjsxt.dao.UserDAO; // 抽象出的数据库管理层
import com.bjsxt.dao.impl.UserDAOImpl;
import com.bjsxt.model.User;

public class UserService { // 业务逻辑, 还可以设计权限, 抽象出一层 : 用户服务层, 用户管理层
private UserDAO userDAO;

public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public void add(User u) {
this.userDAO.save(u); // 添加用户会将用户添加到 DB 中。
}

public UserService(UserDAO userDAO) {
super();
this.userDAO = userDAO;
}

}
beans.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 
<bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl">
<!-- collaborators and configuration for this bean go here -->
</bean>

<bean id="userService" class="com.bjsxt.service.UserService">
<!--   <property name="userDAO" ref="u"/>  -->
<constructor-arg>
<ref bean="u"/>
</constructor-arg>
</bean>

<!-- more bean definitions go here -->

</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: