PoeticalJustice

导航

JAVAWEB 一一 Spirng(框架,IOC控制反转,DI依赖注入)

jar包

 

applicationContext.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 ">
	<!-- 定义UserDao对象,并指定id为userDao -->
<!-- 	<bean id="userDao" class="dao.impl.UserDao" />
	定义UserBiz对象,并指定id为userBiz
	<bean id="userBiz" class="biz.impl.UserBiz">
		为userBiz的dao属性赋值,需要注意的是,这里要调用setDao()方法
		<property name="dao">
			引用id为userDao的对象为userBiz的dao属性赋值
			<ref bean="userDao" />
			<bean class="dao.impl.UserDao"></bean>
		</property>
		<property name="num">
			<value>10</value>
		</property>
	</bean> -->
	
	<bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean>
	<bean id="userService" class="service.UserServiceImpl">
		<property name="userDao">
			<ref bean="userDao"/>
		</property>		
	</bean> 
	
<!-- 	<bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean>
	<bean id="userService" class="service.UserServiceImpl">
		<constructor-arg>
			<ref bean ="userDao"/>
		</constructor-arg>	
	</bean> -->
</beans>

  UserDao.java

package com.demo.dao;

import com.demo.entity.User;

public interface UserDao {
	public void addUser(User user);
}

  

UserDaoImpl.java

import com.demo.dao.UserDao;
import com.demo.entity.User;

public class UserDaoImpl implements UserDao {
	private UserDao userDao;
	
	public UserDao getUserDao() {
		return userDao;
	}


	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
	
	public void addUser(User user) {
		System.out.println("调用数据库");
		
	}	
}

  User.java

package com.demo.entity;

public class User {
	private int id;
	private String username;
	private String password;
	private String email;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	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;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public User(int id, String username, String password, String email) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
		this.email = email;
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
}

  UserService

package com.demo.service;

import com.demo.entity.User;

public interface UserService  {
	public void addUser(User user);
}

  

package com.demo.service.impl;

import com.demo.dao.UserDao;
import com.demo.entity.User;
import com.demo.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;



	public UserDao getUserDao() {
		return userDao;
	}



	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}



	public void addUser(User user) {
		userDao.addUser(user);
		
	}


/*
	public UserServiceImpl() {
			super();
		// TODO Auto-generated constructor stub
	}



	public UserServiceImpl(UserDao userDao) {
		super();
		this.userDao = userDao;
	}*/
	
}

  IocTest.java

package com.demo.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import com.demo.entity.User;
import com.demo.service.UserService;

public class IocTest {

	/**
	 * Inverse of control 控制反转 DI 依赖注入
	 * aop
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService service =(UserService)ctx.getBean("userService");
		
		User user = new User(10,"Tom","123456","504177380@qq.com");
		service.addUser(user);
	}

}

  Inverse of control 控制反转(不需要自己new对象,框架帮你完成,你使用就行了)

   DI 依赖注入(属性或者构造器)

 

posted on 2017-11-10 20:38  PoeticalJustice  阅读(202)  评论(0编辑  收藏  举报