spring注解使用1 - 13337159127/Note GitHub Wiki
- 实列化类
@Repository(value = "对象"):实例化(本类)的注解。value是对象的值。在扫描包时,遇到这个注解的类,spring 就帮忙实例化。(它通常用于注解数据访问层 (DAO 层 )。
@Service("对象")注解,将自动注册到Spring容器 (在service业务逻辑层使用)
@component("对象")是一个通用的注解,可以用于任何bean
@Controller:用于标注控制层组件(是一个控制器类) (在springMVC中使用) 在controller类上面使用。 @Controller 负责处理由DispatcherServlet 分发的请求
这几个注解是当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于将这个类定义为一个bean,,bean名称为XXX; 这几个是基于类的,我们可以定义名称。【也可以不定义,不定义会默认以类名为bean的名称(类首字母小写)】。
- spring依赖注入
@Autowired:自动注入的注解。(@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上)。 @Autowired将已经实例化的对象赋值给成员变量。加上@Autowired注解,就不用在设置set方法了。
@Autowired注解和@Repository @Service @component注解存在对应关系。@Repository注解后面定义value的值等于@Autowired注解下成员变量。@Qualifier(“ ”)可以指定@Autowired装配的名称
@Autowired注解会因为找不到合适的bean抛出异常,可以通过 @Autowired(required=flase)避免。required默认flase
@Autowired注解,有两种方式:byType和byName,默认使用的是byType的方式向Bean里面注入相应的Bean。
通过类型:成员变量的名字也可随便起,不用和@Repository里面的value的值一样
通过类名:一个接口可以实现多个类的时候,需要通过name默认,也就是成员变量来的
============================================================================================================
@Resource(name=" "):与@Autowired都可以用来装配bean. 都可以写在字段上,或写在setter方法上。名称可以通过name属性进行指定。当找不到与名称匹配的bean时按照类型进行装配。
- @RequestMapping("/commodity")。对于/commodity的请求,通过注解标签下面的方法进行响应。在controller类方法上面使用。是一个用来处理请求地址映射的注解。value属性和method属性:@RequestMapping(value="/commodity",method="RequestMethod.GET")。
- @SessionAttributes("name")保存信息,相当于session,在类上使用,向jsp页面和controller类里面传值,在方法里面定义Model model, model.addAttribute("name", username);相当于session.setAttribute("name",value);
- @ModelAttribute("name") 和@SessionAttributes("name")配合使用,在方法里定义,接收值,相当于session.getAttribute("key");