使用spring的annotation配置项目
在spring中提供了如下几个Annotation来标注Spring Bean:
@Component:标注一个普通的Spring Bean类。@Controller:标注一个控制器组件类。@Service:标注一个业务逻辑组件类。@Repository:标注一个Dao组件类。
另外两个常用的Spring Annotation:
@Autowired:用来自动装配Bean,可以标注setter方法、普通方法、Field和构造器等。@Scope:用来标注一个Spring Bean的作用域,默认是singleton,对于action类我们会通常将其scope设置为prototype。
下面看如何使用Spring的annotation,首先需要在Spring的配置文件applicationContext.xml中添加如下配置:
@Scope("prototype")@Controllerpublic class LoginAction implements Action {@Autowiredprivate UserService userService;private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}public String execute(){String pwdMD5 = DigestUtils.md5Hex(user.getPassword());if(this.userService.login(user.getUsername(), pwdMD5)){ActionContext.getContext().getSession().put("username", this.user.getUsername());return SUCCESS;}return ERROR;}}这里使用@Scope("prototype")来指定了该action是原型类型的,即每来一个请求都要new一个这个类的对象,而不是使用单例,使用单例时如果有多个请求同时请求该action就会出现错误。