}
对应的逻辑视图名为 “ vets ” ,返回的 ModelMap 将被作为请求对应的模型对象,可以在 JSP 视图页面中访问到。
? ModelAndView
当然还可以是传统的 ModelAndView 。
@ModelAttribute ? 作用域:request ? 例如
@RequestMapping(\ public String handleInit(@ModelAttribute(\ManagedUser sUser,Model model,){ ? 或者
@ModelAttribute(\将coopMap 返回到页 面 public Map
@ModelAttribute 声明在属性上,表示该属性的value 来源于model 里\,并被保存到model 里@ModelAttribute 声明在方法上,表示该方法的返回值被保存到model 里
@Cacheable 和@CacheFlush
? @Cacheable :声明一个方法的返回值应该被缓 存 例如:@Cacheable(modelId = \ ? @CacheFlush :声明一个方法是清空缓存的触发器 例如:@CacheFlush(modelId = \ ? 说明
要配合缓存处理器使用,参
考: http://hanqunfeng.javaeye.com/blog/603719
@Resource ? 例如 @Resource
private DataSource dataSource; // inject the bean named 'dataSource' ? 或者
@Resource(name=\@Resource(type=DataSource.class) ? 说明
@Resource 默认按bean 的name 进行查找,如果没有找到会按type 进行查找, 此时与@Autowired 类 似 @PostConstruct 和@PreDestroy ? @PostConstruct
在方法上加上注解@PostConstruct ,这个方法就会在Bean 初始化之后被Spring 容器执 行
(注:Bean 初始化包括,实例化Bean ,并装配Bean 的属性(依赖注入))。 ? @PreDestroy
在方法上加上注解@PreDestroy ,这个方法就会在Bean 被销毁前被Spring 容器执行。
@Repository
? 与@Controller 、@Service 类似,都是向spring 上下文中注册bean ,不在赘述。
@Component (不推荐使用) ? @Component
@Component 是所有受Spring 管理组件的通用形式,Spring 还提供了更加细化的注解形式: @Repository 、@Service 、@Controller ,它们分别对应存储层Bean ,业务层Bean ,和展示层Bean 。 目前版本(2.5 )中,这些注解与@Component 的语义是一样的,完全通用, 在Spring 以后的版本中可能会给它们追加更多的语义。 所以,我们推荐使用@Repository 、@Service 、@Controller 来替代@Component 。 @Scope ? 例如
@Scope(\ @Repository()
public class UserSessionBean implementsSerializable {}
? 说明
在使用XML 定义Bean 时,可以通过bean 的scope 属性来定义一个Bean 的作用范围,
同样可以通过@Scope 注解来完成
@SessionAttributes ? 说明
Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,
以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。
这一功能是通过类定义处标注 @SessionAttributes 注解来实现的。 @SessionAttributes 只能声明在类上,而不能声明在方法上。 ? 例如
@SessionAttributes(\将ModelMap 中属性名为currUser 的属性
@SessionAttributes({\@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types =
{User.class,Dept.class},value={\@InitBinder ? 说明
如果希望某个属性编辑器仅作用于特定的 Controller , 可以在 Controller 中定义一个标注 @InitBinder 注解的方法, 可以在该方法中向 Controller 了注册若干个属性编辑器 ? 例如 @InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(\dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); }