pom.xml
4.0.0
com.monkey1024
02_spring
0.0.1-SNAPSHOT
war
UTF-8
org.springframework
spring-context
5.0.4.RELEASE
junit
junit
3.8.1
test
02_spring
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
UTF-8
application.xml
UserDao.java
package com.monkey1024.dao;
public interface UserDao {
void addUser();
}
UserDaoImpl.java
package com.monkey1024.dao.impl;
import org.springframework.stereotype.Repository;
import com.monkey1024.dao.UserDao;
@Repository("userDao")
public class UserDaoImpl implements UserDao{
public void addUser(){
System.out.println("添加用户");
}
}
UserService.java
package com.monkey1024.service;
public interface UserService {
void addUser();
}
UserServiceImpl
package com.monkey1024.service.impl;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import com.monkey1024.dao.UserDao;
import com.monkey1024.service.UserService;
@Scope("prototype") //singleton单例的
@Service("userService")
public class UserServiceImpl implements UserService {
// @Autowired
// @Qualifier("userDao")
// private UserDao userDao;
@Resource(name="userDao")
private UserDao userDao;
public void addUser(){
//以前需要手动创建对象
//userDao = new UserDaoImpl();
userDao.addUser();
}
@PostConstruct
public void before(){
System.out.println("开始");
}
@PreDestroy
public void after(){
System.out.println("结束 ");
}
}
Test01.java
package com.monkey1024.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.monkey1024.service.UserService;
public class Test01 {
@Test
public void testDI(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) context.getBean("userService");
userService.addUser();
}
@Test
public void testInitAndDestroy(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) context.getBean("userService");
userService.addUser();
//关闭容器
((ClassPathXmlApplicationContext)context).close();
}
@Test
public void testPrototype(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService1 = (UserService) context.getBean("userService");
UserService userService2 = (UserService) context.getBean("userService");
System.out.println(userService1 == userService2);
}
}