@Service指定参数与不指定参数的细节问题
原理:@Service(“userService”) , 它里边的参数就是xml文件中的bean id=userService,如果不指定,相当于 bean id=com.mooc.service.impl.UserServiceImpl
一般情况我们采用@Service注解的时候,不用这样@Service(“userService”)指定的,
因为默认是当前类的首字母小写,比如下边所示
//在UserServiceImpl类中
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
System.out.println(userDao);
return userDao.findAll();
}
}
//在单元测试中,调用Service对象
@Test
public void Test(){
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService=(UserService) context.getBean("userServiceImpl");
List<User> list=userService.findAll();
System.out.println(list);
}
我们也可以通过自定义参数来指定,@Service(“xxx”),注意观察参数变化
//在UserServiceImpl类中
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
System.out.println(userDao);
return userDao.findAll();
}
}
//在单元测试中,调用Service对象
@Test
public void Test(){
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService=(UserService) context.getBean("userService");
List<User> list=userService.findAll();
System.out.println(list);
}