`

Spring的IOC容器

    博客分类:
  • java
阅读更多
(本文为自己书写,如有错误,请指正,大家共同进步,谢谢。)


Spring的IOC容器

1。Spring的IOC容器是一个提供IOC支持的轻量级的容器,为我们提供两种容器:BeanFactory和ApplicationContext。
  BeanFactory是基础类型的IOC容器。ApplicationContext是以BeanFactory为基础构建的。
2。深入理解依赖注入
依赖注入(DI)也被称为控制反转(IoC)。
3。依赖注入的三种实现方式:
A:设置注入:(setter-无参的构造器实现)--->为主
B:构造方法注入--->为辅
C:接口注入(不常用)
<代码如下:>
package com.decophering.dao.impl;
import com.decophering.dao.UserDao;
import com.decophering.model.User;
public class UserDaoImpl implements UserDao {
public void save(User user) {
System.out.println(user.getUsername() + "save in Oracle ! ");
System.out.println(user.getPassword() + "save in DB2 ! ");
}

}

package com.decophering.dao;
import com.decophering.model.User;
public interface UserDao {
public void save(User user);
}

package com.decophering.model;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

package com.decophering.service.impl;
import com.decophering.dao.UserDao;
import com.decophering.model.User;
import com.decophering.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao dao;
public void add(User user) {
dao.save(user);

}
public UserDao getDao() {
return dao;
}
public void setDao(UserDao dao) {
this.dao = dao;
}
public UserServiceImpl (UserDao dao){
super();
this.dao = dao;
}
}

package com.decophering.service;
import com.decophering.model.User;
public interface UserService {
public void add(User user);
}

package com.decophering.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.decophering.model.User;
public class UserServiceTest {
@Test
public void testAdd() throws Exception{
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService service = (UserService) context.getBean("UserService");
User u = new User();
u.setUsername("测试用户; ");
u.setPassword("111111; ");
service.add(u);
System.out.println(u.getUsername() + "\n" + u.getPassword());
}

}

<!--xml-->
<bean id="u" class="com.decophering.dao.impl.UserDaoImpl"></bean>
<bean id="UserService" class="com.decophering.service.impl.UserServiceImpl">
      <!--     <property name="dao">
<ref bean="u"></ref>
</property>
-->
<constructor-arg>
<ref bean="u"></ref>
</constructor-arg>
</bean>

//输出结果
测试用户; save in Oracle !
111111; save in DB2 !
测试用户;
111111;


4。配置Bean的属性和依赖关系
Bean的配置:
a.定义Bean:IoC容器管理一或多个Bean,这些均在XML文件中提供的Bean的配置进行创建
包括:
id(唯一的),
name:名称(可以一个,或者多个),
class:Bean的具体实现类(包名+类名)。
b.Bean的依赖注入有两种表现方式:
(1)属性:<property/>对应是设置注入
(2)构造器参数:通过<constructor-arg/>对应构造注入





















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics