set注入與構造器注入
阿新 • • 發佈:2021-09-22
spring
set注入與構造器注入
1、配置依賴
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.9</version> </dependency> </dependencies>
2、編寫dao.UserDao類
package com.xiang.dao;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/9/22 10:55
*/
public interface UserDao {
String show();
}
3、編寫dao.impl.UserDaoimpl1/UserDaoimpl2類
package com.xiang.dao.impl; import com.xiang.dao.UserDao; /** * Created by IntelliJ IDEA. * User: xiang * Date: 2021/9/22 10:56 */ public class UserDaoImpl1 implements UserDao { @Override public String show() { return "查詢使用者資訊1"; } }
package com.xiang.dao.impl;
import com.xiang.dao.UserDao;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/9/22 10:56
*/
public class UserDaoImpl2 implements UserDao {
@Override
public String show() {
return "查詢使用者資訊2";
}
}
4、編寫service.UserService類
package com.xiang.service; /** * Created by IntelliJ IDEA. * User: xiang * Date: 2021/9/22 10:57 */ public interface UserService { String show(); }
5、編寫service.UserServiceImpl類
package com.xiang.service;
import com.xiang.dao.UserDao;
import com.xiang.dao.impl.UserDaoImpl1;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/9/22 10:57
*/
public class UserServiceImpl implements UserService{
// private UserDaoImpl1 userDaoImpl1 = new UserDaoImpl1();
private UserDao userDao;
/**
* set 注入
* @param userDao
*/
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
/**
* 構造方法
* 構造器 注入
* @param userDao
*/
public UserServiceImpl(UserDao userDao){
this.userDao = userDao;
}
/**
* 調方法
* @return
*/
@Override
public String show() {
return userDao.show();
}
}
6、編寫測試類
package com.xiang.service;
import com.xiang.dao.impl.UserDaoImpl1;
import com.xiang.dao.impl.UserDaoImpl2;
import org.junit.Test;
/**
* Created by IntelliJ IDEA.
* User: xiang
* Date: 2021/9/22 11:00
*/
public class UserServiceImplTest {
/**
* 普通方式查詢
*/
// @Test
// public void Test01() {
// UserServiceImpl service = new UserServiceImpl();
// System.out.println(service.show());
// }
/**
* set 注入
*/
// @Test
// public void Test02() {
// UserServiceImpl service = new UserServiceImpl();
// service.setUserDao(new UserDaoImpl2());
// System.out.println(service);
// System.out.println(service.show());
// }
/**
* set 注入
*/
// @Test
// public void Test03() {
// UserServiceImpl service = new UserServiceImpl();
// service.setUserDao(new UserDaoImpl1());
// System.out.println(service);
// System.out.println(service.show());
// }
/**
* 構造器 注入
*/
@Test
public void Test04() {
UserServiceImpl service = new UserServiceImpl(new UserDaoImpl2());
System.out.println(service);
System.out.println(service.show());
}
}