java spring mvc注解组件的详解

spring mvc注解组件的详解

目录

1.@Controller

2.@RequestMapping

3.@Service

4.Dao

5.@Autowried

6.Spring的时间Date格式的参数的处理


1.@Controller

在SpringMVC中,控制器Controller负责处理理由DipatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理后封装成一个Model,然后再把改Model返回给对应的View进行展示。在SpringMVC中提供了一个非常简单的定义Controller的方法,你无需继承特定的类或实现特定的接口,只需要使用@Controller标记一个类Controller,然后使用@RequestMapping和@RequestParam等一些注解以定义URL请求和Controller方法方法之间的映射,这样的Controller就能被外界访问到,除外Controller不会Controller不会直接依赖于HttpServletRequest和HttpServletResponse等httpServlet对象,它可以通过Controller的方法参数灵活的获取到。

@Controller
@RequestMapping("/application")
public class ApplicationController extends BaseController {

2.@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@Controller
@RequestMapping("/application")
public class ApplicationController extends BaseController {
	private Logger logger = LoggerFactory
			.getLogger(ApplicationController.class);
	@RequestMapping("/list")
	public String listPage() {
		return "/frame/system/application/application_list";
	}

 

3.@Service

@Service是告诉Spring,当Spring要创建ApplicationServicelpml的实例时,bean的名字必须叫做“ApplicationService”,这样当Action需要使用ApplicationServicelmpl的实例时,就可以由spring创建好的“ApplicationService”,然后注入给Action:在Action只需要声明一个名字“ApplicationService”的变量来接收Spring注入的“ApplicationService”即可,具体代码如下:

@Service
public class ApplicationServiceImpl implements ApplicationService {
	@Autowired
	private ApplicationService applicationService;

4.Dao

使用mybatis实现dao层的映射,

在web.xml文件注入:

 

<!-- 通过扫描的模式,扫描目录在com/newsoft/*目录下,所有的DAO都继承com.newsoft.mybatis.BaseDAO接口的接口 -->
	<bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.newsoft,com.litong,com.leatop,ot.component.tree.dao,ot.www.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
		<property name="markerInterface" value="com.newsoft.common.mybatis.BaseDAO" />
	</bean>

编写一个基本的接口 interface BaseDAO,编写继承BaseDAO实现类 interface ApplicationDao extends BaseDAO ,创建一个名字被类名一样的xml的ApplicationDao .xml文件。调用ApplicationDao 类就可以调用了ApplicationDao .xml中语句了。

ApplicationDao .class:

public interface ApplicationDao extends BaseDAO {

	/**
	 * 获取所有应用信息
	 * 
	 * @return
	 */
	List<Application> getApplications();

	/**
	 * 根据应用ID获得应用信息
	 * 
	 * @return
	 */
	Application getApplicationByAppId(String appId);

ApplicationDao .xml:

<select id="getApplications" resultMap="applicationRM">
		select * from FRAME_APPLICATION where 1=1
		
	</select>

	<select id="getApplicationByAppId" resultMap="applicationRM">
		select * from FRAME_APPLICATION where app_id = #{appId, jdbcType=INTEGER}
	</select>

 

5.@Autowried

默认是按照类型进行装配注入,默认的情况下,它要求依赖的对象必须存在,如果允许为null,可以设置它required为false。

@Autowired
	private ApplicationDao applicationDao;

6.Spring的时间Date格式的参数的处理

在spring中时间Date格式,不能自动化赋值给对应的参数。就要额外手动编写一段InitBinder代码已处理一下。对应的controller层写入:

   /**
	 * 切入处理日期类型的值
	 * 
	 * @param binder
	 */
	@InitBinder
	public void initBinder(WebDataBinder binder) {
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		dateFormat.setLenient(true);
		//binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
		binder.registerCustomEditor(Date.class, new CustomDateEditorEx(dateFormat, true));
	}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值