关于Spring注入之web经典三层架构的耦合

在此重新叙述关于set方法进行注入和@Autowired注解进行注入的问题:

set方法进行注入的时候,可以将任何类型进行注入,普通类型,引用类型和复杂类型,在applicationContext.xml配置文件中进行

<property name="" ref=""></property>然后可以将引用类型进行注入,而@Autowired也可以在类的内部对其他类进行注入先根据byName,再根据byType

在此根据注入举个关于耦合强度够高的dao层,service层和web层之间的具体连接

在dao层中:

package dao;

import pojo.User;

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

package dao;

import pojo.User;

public class UserDaoImpl implements UserDao {

    public void addUser(User user) {
        // TODO Auto-generated method stub
        System.out.println("新增一个用户:"+user);
    }  
}
在pojo层中:

package pojo;

public class User {
  private String name;
  private int age;
public User(String name, int age) {
    super();
    this.name = name;
    this.age = age;
}
@Override
public String toString() {
    return "User [name=" + name + ", age=" + age + "]";
}
  
}

在service层中:

package service;

import pojo.User;

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

package service;

import dao.UserDao;
import pojo.User;

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void addUser(User user) {
        // TODO Auto-generated method stub
        userDao.addUser(user);
    }

}

在web层中:

package web;

import pojo.User;
import service.UserService;

public class UserServlet {
    private UserService userService;
    
  public void setUserService(UserService userService) {
        this.userService = userService;
    }

  public void addUser(User user)
  {
      userService.addUser(user);
  }
}
applicationContext.xml中:

<bean id="user" class="pojo.User">
     <constructor-arg index="0" name="name" value="罗律洲"></constructor-arg>
     <constructor-arg index="1" name="age" value="22"></constructor-arg>
   </bean>
   <bean id="userDao" class="dao.UserDaoImpl"></bean>
   <bean id="userService" class="service.UserServiceImpl">
     <property name="userDao" ref="userDao"></property>
   </bean>
   <bean id="userServlet" class="web.UserServlet">
     <property name="userService" ref="userService"></property>
   </bean>

Test测试类:

package test;

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

import pojo.User;
import web.UserServlet;

public class TestSpring {
 @Test
 public void test01(){
     ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
     User user = (User) context.getBean("user");
     UserServlet userServlet = (UserServlet) context.getBean("userServlet");
    userServlet.addUser(user);
 }
}
 

猜你喜欢

转载自blog.csdn.net/luolvzhou/article/details/82389658
今日推荐