Spring day01(1)
Spring day01(1)
萧小蚁 发表于2年前
Spring day01(1)
  • 发表于 2年前
  • 阅读 16
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Spring IOC 一、Spring的IoC特性 1. IoC(Inversion Of Control):反向控制,控制反转 DI(Dependency Injection):依赖注入 2. 对象的依赖类实例不是主动去创建了,而是由容器注入
package dao;

import java.util.List;

import model.User;

public interface UserDao {

	public void add(User user);
	
	public void delete(int id);
	
	public void update(User user);
	
	public User get(int id);
	
	public List<User> findAll();
}

package dao.impl;

import java.util.List;

import dao.UserDao;
import model.User;


public class UserHibernateDaoImpl implements UserDao{

	@Override
	public void add(User user) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserHibernateDaoImpl  add方法");
	}

	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserHibernateDaoImpl  delete方法");
	}

	@Override
	public void update(User user) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserHibernateDaoImpl  update方法");
	}

	@Override
	public User get(int id) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserHibernateDaoImpl  get方法");
		return null;
	}

	@Override
	public List<User> findAll() {
		// TODO Auto-generated method stub
		System.out.println("调用了UserHibernateDaoImpl  findAll方法");
		return null;
	}

}

package dao.impl;

import java.util.List;

import model.User;
import dao.UserDao;

public class UserJdbcDaoImpl implements UserDao{

	@Override
	public void add(User user) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserJdbcDaoImpl  add方法");
	}

	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserJdbcDaoImpl  delete方法");
	}

	@Override
	public void update(User user) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserJdbcDaoImpl  update方法");
	}

	@Override
	public User get(int id) {
		// TODO Auto-generated method stub
		System.out.println("调用了UserJdbcDaoImpl  get方法");
		return null;
	}

	@Override
	public List<User> findAll() {
		// TODO Auto-generated method stub
		System.out.println("调用了UserJdbcDaoImpl  findAll方法");
		return null;
	}

}

package model;

public class User {

	private int id;
	private String name;
	
	public User(){
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}

package service;

import dao.UserDao;


public class UserService {

	//private UserDao userDao=new UserHibernateDaoImpl();
	
	//IOC的声明方式
	private UserDao userDao;
	
//	public UserService(UserDao userDao){
//		System.out.println("调用了UserService的构造方法"+userDao);
//		this.userDao=userDao;
//	}
	
	
	public void setUserDao(UserDao userDao){
		System.out.println("调用了setUserDao方法");
		this.userDao=userDao;
	}
	public void add(){
		userDao.add(null);
	}
	
}

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
	
	<!-- bean标签就表示需要交给spring管理的类     id属性:就是给类指定一个标识,class属性指定需要管理的类 全限定名 -->
	<bean id="userDao" class="dao.impl.UserJdbcDaoImpl"></bean>
	 
	 <!--  
	 <bean id="userService" class="service.UserService">
		
		<property name="userDao" ref="userDao"></property>
		<constructor-arg ref="userDao"/>
	</bean>
	 --> 
	 
	<!-- 自动装配bean对象 -->
	<bean id="userService02" class="service.UserService" autowire="byName"/>
	
	
	<!-- 自动装配bean对象 -->
	<bean id="userService03" class="service.UserService" autowire="byType"/>
	
</beans>

package test;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

import service.UserService;

public class TestUserService {

	
	@Test
	public void testAdd(){
		BeanFactory factory=new XmlBeanFactory(new ClassPathResource("beans.xml"));
	
		UserService us=(UserService)factory.getBean("userService");
		us.add();
	}
	
	@Test
	public void testAdd1(){
		
		ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
		UserService us=context.getBean("userService", UserService.class);
		us.add();
	}
	
	@Test
	public void testAdd2(){
		
		ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
		UserService us=context.getBean("userService02", UserService.class);
		us.add();
	}
	
	@Test
	public void testAdd3(){
		
		ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
		UserService us=context.getBean("userService03", UserService.class);
		us.add();
	}
}


共有 人打赏支持
萧小蚁
粉丝 94
博文 278
码字总数 192339
×
萧小蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: