Spring MVC将商城管理页面和商城管理员登录页面的前端请求发给与请求路径对应的ShopManagerControll类,ShopManagerControll类调用ShopManagerService类对请求进行处理,ShopManagerService类会调用DAO接口完成对实体类的存取和查询工作,并将处理结果返回到ShopManagerControll类,ShopManagerControll类将处理结果转换为ModelAndView对象,JSP接收ModelAndView对象并进行渲染。
在com.eshop.admin. controller包下新建ShopManagerControll类。eclipse会自动为ShopManagerControll类生成注释。@Description注释需要手动添加。
/**
* @Title: ShopManagerControll.java
* @Package com.eshop.admin.controller
* @Description: 用于商铺管理和管理员登录请求响应处理
* @author xinch
* @date 2019年7月20日
* @version V1.0
*/
package com.eshop.admin.controller;
/**
* @ClassName: ShopManagerControll
* @Description: 商铺管理和管理员登录请求响应处理
* @author xinch
* @date 2019年7月20日
*
*/
public class ShopManagerControll {
}添加注解@Controller和@RequestMapping注解
ShopManagerControll现在还是一个普通的java类,我们需要在ShopManagerControll类的头部加入@Controller注解。@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象,Spring会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
在spring-servlet.xml配置文件中,配置了Spring的扫描路径:
<context:component-scan base-package="com.eshop"></context:component-scan>
在@Controller注解后面,还需要再加入@RequestMapping注解,@RequestMapping是一个用来处理请求地址映射的注解,可用于Controller类或类的方法上:用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于类方法上,类的映射地址和方法的映射地址构成一个完整的请求映射地址。在ShopManagerControll类的类定义前面加上下面的注解:
@Controller
@RequestMapping("/admin/shopmanager")@RequestMapping注解括号内的“/admin/shopmanager”表示前端以“/admin/shopmanager”为路径的请求都会被ShopManagerControll类响应和处理。
添加Logger日志属性
在ShopManagerControll类中还需要添加Logger类型的属性,用于输出日志信息。
/** * @log 日志输出 */ private Logger log = LogManager.getLogger(ShopManagerControll.class.getName());
LogManager.getLogger需要传入一个class对象的名称,用于区分日志所属的类对象。
类属性的注释可以让eclipse自动添加,将光标放置在要加入注释的属性行上,单击鼠标右键,在弹出的菜单中依次选择:
Source->Generate Element Comment
或者直接按下Alt+Shift+J快捷键。
注入ShopManagerService类
ShopManagerService类是商铺管理和商城管理员登录业务逻辑处理类。因此需要在ShopManagerControll类中注入ShopManagerService类,注入ShopManagerService类需要使用注解@Autowired。@Autowired 注解可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
/** * @shopManagerService 商铺管理和商城管理员登录业务类 */ @Autowired private ShopManagerService shopManagerService;
完整的ShopManagerControll代码如下:
/**
* @Title: ShopManagerControll.java
* @Package com.eshop.admin.controller
* @Description: 用于商铺管理和管理员登录请求响应处理
* @author xinch
* @date 2019年7月20日
* @version V1.0
*/
package com.eshop.admin.controller;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.eshop.admin.service.ShopManagerService;
/**
* @ClassName: ShopManagerControll
* @Description: 商铺管理和管理员登录请求响应处理
* @author xinch
* @date 2019年7月20日
*
*/
@Controller
@RequestMapping("/admin/shopmanager")
public class ShopManagerControll {
/**
* @log 日志输出
*/
private Logger log = LogManager.getLogger(ShopManagerControll.class.getName());
/**
* @shopManagerService 商铺管理和商城管理员登录业务类
*/
@Autowired
private ShopManagerService shopManagerService;
}