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

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 基于注解的IOC配置 spring_01_annotation
package com.dao;

import java.util.List;

import com.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 com.model;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * 实体
 * @author sally
 *
 */
@Component("user01")
@Scope("singleton")
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 com.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.dao.UserDao;
import com.model.User;
/**
 * 持久层
 * @author sally
 *
 */
@Repository
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 com.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.dao.UserDao;
import com.model.User;

@Repository
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 com.service;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.dao.UserDao;

/**
 * 
 * @author sally
 *
 */
@Service("userService")
public class UserService {

	//private UserDao userDao=new UserHibernateDaoImpl();
	
	//IOC的声明方式
	
	private UserDao userDao;
	
	@Autowired
	public UserService(@Qualifier("userJdbcDaoImpl")UserDao userDao){
		System.out.println("调用了UserService的构造方法"+userDao);
		this.userDao=userDao;
	}
	
	@Autowired
	@Qualifier("userJdbcDaoImpl")
	public void setUserDao(UserDao userDao){
		System.out.println("调用了setUserDao方法");
		this.userDao=userDao;
	}
	public void add(){
		userDao.add(null);
	}
	@PostConstruct
	public void a(){
		System.out.println("aaaaaaaaaaaa");
	}
	@PreDestroy
	public void b(){
		System.out.println("bbbbbbbb");
	}
}
package com.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dao.UserDao;
import com.dao.impl.UserJdbcDaoImpl;

/**
 * 
 * @author sally
 *
 */
@Service("userService2")
public class UserService2 {

	//IOC的声明方式
	
	//@Resource(name="userHibernateDaoImpl")
	
	@Resource(type=UserJdbcDaoImpl.class)
	private UserDao userDao;
	
	
	//public UserService2(UserDao userDao){
	//	System.out.println("调用了UserService的构造方法"+userDao);
	//	this.userDao=userDao;
	//}
	
	
	//@Resource(type=UserJdbcDaoImpl.class)
	//public void setUserDao(UserDao userDao){
	//	System.out.println("调用了setUserDao方法");
	//	this.userDao=userDao;
	//}
	public void add(){
		userDao.add(null);
	}
	
}
package com.test;

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

import com.service.UserService;
import com.service.UserService2;

public class TestUserService {

	
	@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");
		UserService2 us=context.getBean("userService2", UserService2.class);
		us.add();
	}
	
	
}
<?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">
	
	<context:component-scan base-package="com"></context:component-scan>
	
</beans>


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