一个简单的Spring的Ioc的Demo

论坛 期权论坛 脚本     
匿名技术用户   2020-12-22 14:42   57   0

建立一个model

package com.deciphering.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;
 }
}


建立一个dao层:

package com.deciphering.dao;

import com.deciphering.model.User;

public interface UserDAO {

 public void save(User user);
}

package com.deciphering.dao.impl;

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

public class UserDAOImpl implements UserDAO {

 @Override
 public void save(User user) {

  System.out.println(user.getUsername() + " saved in Oracle!");
  // System.out.println(user.getUsername() + " saved in DB2!");
  // System.out.println(user.getUsername() + " saved in mysql!");

 }

}

建立一个service;

package com.deciphering.service;

import com.deciphering.model.User;

public interface UserService {

 // 处理新增用户业务逻辑
 public void add(User user);
}
package com.deciphering.service;

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

public class UserServiceImpl {

 private UserDAO userDAO;

 public void add(User user) {
  userDAO.save(user);
 }

 public UserDAO getUserDAO() {
  return userDAO;
 }

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

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

写一个Spring的bean配置文件
<?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-2.5.xsd">
           
  <bean id="u" class="com.deciphering.dao.impl.UserDAOImpl">
  </bean>
 
  <bean id="userService" class="com.deciphering.service.UserServiceImpl">
    <!--
    <property name="userDAO">
     <ref bean="u"/>
    </property> 
    -->
    <constructor-arg>
     <ref bean="u"/>
    </constructor-arg>
  </bean>
 
</beans>

开始测试:

package com.deciphering.service;

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

import com.deciphering.model.User;

public class UserServiceTest {

 @Test
 public void testAdd() throws Exception {

  final ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  final UserServiceImpl service = (UserServiceImpl) ctx.getBean("userService");

  final User u = new User();

  u.setUsername("测试用户");
  u.setPassword("123456");

  service.add(u);
 }

}

输出:

一月 08, 2017 10:34:34 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5211ef: startup date [Sun Jan 08 22:34:34 CST 2017]; root of context hierarchy
一月 08, 2017 10:34:34 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [beans.xml]
一月 08, 2017 10:34:35 下午 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@b0cea2: defining beans [u,userService]; root of factory hierarchy
测试用户 saved in Oracle!


ok

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP