一、使用 @Controller定义一个 Controller控制器
@Controller//用于标注控制层组件
在SpringMVC中,Controller用来处理请求,它把用户请求的数据,经过service层处理之后,封装成一个Model,然后再把该Model返回给对应的View进行展示。
在SpringMVC中,用“@Controller”标记一个类是Controller,然后使用@RequestMapping和@RequestParam等注解定义URL请求与Controller方法之间的映射。这样Controller就能被外界访问了。
但是,单单使用@Controller标记在一个类上,还不能真正意义上说它是SpringMVC的一个控制器类,因为Spring还不认识它。那么如何做,Spring才能认识它呢?我们需要在SpringMVC的配置文件中告诉Spring该到哪里去找标记为@Controller的Controller控制器。
二、使用 @RequestMapping来映射 Request请求与处理器
@RequestMapping("mall/cartitem")//映射路径
使用@RequestMapping来映射URL到Controller的处理方法上。当@RequestMapping标记在Controller类上的时候,里面使用@RequestMapping标记的方法的请求地址就是相对于类上的@RequestMapping而言的;当Controller类上没有标记@RequestMapping注解时,方法上的@RequestMapping都是绝对路径。这种绝对路径和相对路径组合成的最终路径都是相对于根路径"/"而言的
(一)使用@RequestParam 绑定 HttpServletRequest 请求参数到控制器方法参数
在上面的代码中,利用@RequestParam从HttpServletRequest中参数name到控制器方法参数name,绑定了参数age到控制器方法参数age。在上面的代码中,如果我访问/requestParam.do?name=hello&age=1则Spring将会把request请求参数name的值hello赋给对应的处理方法参数name,把参数age的值1赋给对应的处理方法参数age
在@RequestParam中除了指定绑定哪个参数的属性value 之外,还有一个属性required ,它表示所指定的参数是否必须在request 属性中存在,默认是true,表示必须存在,当不存在时就会报错。
(二)使用@CookieValue 绑定 cookie 的值到 Controller 方法参数
在上面的代码中我们使用@CookieValue绑定了cookie 的值到方法参数上。上面一共绑定了两个参数,一个是明确指定要绑定的是名称为hello 的cookie的值,一个是没有指定。使用没有指定的形式的规则和@PathVariable 、@RequestParam 的规则是一样的,即在debug编译模式下将自动获取跟方法参数名同名的cookie 值。
@Autowired在做bean的注入时使用。可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。通过它的使用来消除set、get方法
@Transactional//事务处理
@Override//当子类函数添加@Override后,该函数重写父类中签名相同的函数,否则将会编译失败
@Service//用于标注业务层组件
@Repository//用于标注数据访问组件
@Component//泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注