I have UserBean in my Spring-MVC project to store user.
@Component
@Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class UserBeanImpl implements UserBean {
private User user;
@Override
public User getUser() {
return user;
}
@Override
public UserBean setUser(User user) {
this.user = user;
return this;
}
}
Can I autowire it into service layer? Should I autowire it only into controllers?
First way (autowire into servise):
@Service
public class MyServiceImpl implements MyService {
@Autowired
UserBean userBean;
@Override
public void doSomething(int id) {
dao.doSomething(id,userBean.getUser());
}
Second way (autowire into cotroller):
@Service
public class MyServiceImpl implements MyService {
@Override
public void doSomething(int id, User user) {
dao.doSomething(id, user);
}
}
@Controller
public class MyController {
@Autowired
UserBean userBean;
@RequestMapping(value = {"/"})
public void do(@RequestParam("id") int id) {
myService.doSomething(id, userBean.getUser());
}
}
What is better in terms of Spring MVC-Service-DAO architecture?