比如我有一个
public interface UserDao
{
public void saveUser(Object user) ;
}
public class UserDaoImpl implement UserDao{
public void saveUser(Object user) {
System.out.println("save");
}
public class UserServiceImpl
{
private UserDao userDao;//这边我想让Spring注解方式注入 其他的地方该怎么配置,麻烦把其他配置加一下。万分感谢
//。。。。。
}
@Service
public class UserService {
@Resource
private UserDao userDao;
}
比如这样,但 UserDao 和UserDaoImp该怎么写配置
有两种方式
1种:
public class UserServiceImpl { @Autowired //根据类型注入,不需要setter private UserDao userDao; }
2,种:
public class UserServiceImpl { private UserDao userDao; @Resource public void setUserDao(UserDao userDao){ this.userDao=userDao } }
在public class UserDaoImpl implement UserDao{
public void saveUser(Object user) {
System.out.println("save");
}上面什么都不用写么?
我就问最后一个问题 private UserDao userDao; @Resource public void setUserDao(UserDao userDao){ this.userDao=userDao } 这样他会去找userDao但是在UserDaoimpl里
@Service("userDaoImpl")
public class UserDaoImpl implements UserDao 为什么他会找到
@Resource
private UserDao userDao;
我就想问这个userDaos是怎么注入进去的
@学海无涯_小波: 你的代码格式一下撒、这样看着清楚、
@Component("userDao") //你需要加这个表面你的UserDaoImpl将通过注解实例化、 public class UserDaoImpl implement UserDao{ public void saveUser(Object user) { System.out.println("save"); } }
切记你的spring还需要配置
<context:component-scan base-package="包名" />
包名:比如你的项目最小的包结构是com.test,如下写入
<context:component-scan base-package="com.test" />
@学海无涯_小波:
你要想知道如何注解进去的,你先要学习java的注解是怎么一回事、然后看看spring的源码你就知道了、