当前位置:XML > XML介绍

上下文指定服务类的获取Applicati

中科白癜风微信账号 http://m.39.net/pf/a_4572199.html

一简介

工作中,有可能遇到需要获取指定Bean的服务类执行指定方法,并不是所有的bean都需要,比如要获取某张表的表内容,表后续会新增,如果我们新增一张表,就重新写一个方法,就很不方便,可以写一个公共的方法,后续新增表并不会影响已经写好的方法。

二代码说明

1、定义接口名

我们要获取指定了datatablename的服务类信息

图1新增注解

2、指定服务类注明datatablename

假设我们要获取UserServiceImpl服务类,则注明上我们指定的注解,name里是新增的数据库表名

图2指定类标注我们的注解

3、通过反射获取我们指定的注解对应的类服务

图3通过反射获取标注我们注解的服务

4、配置服务上下文

图4配置上下文bean

5、应用

图5通过上下文获取服务类

备注:在实施过程中,有人疑问,反射就可以获取到服务类了,为何还要新增上下文服务来获取服务类呢?

因为spring是容器,所有的bean都是让spring容器接管了,虽然我们通过反射可以获取到服务类,但也只是拿到了这个服务类,服务类里面其实有很大可能是注入了其他服务类,通过

Autowired注入的,这时如果用反射的服务类来执行命令,当服务类里引用的其他服务类就会报空指针null错误,所以我们通过反射拿到了这个服务类,但是还是要通过上下文的方式引用,通过上下文的方式引用的服务类,其里面再引用注入的服务类就可以获取到。

三测试

查询mysql数据库里user表内容

图6获取user表内容

查询mysql数据库里tb_sys_user表内容

图7获取tb_sys_user表内容

后面如果要查询新增的表的内容信息,只需要在指定服务类上注明我们的datatablename注解。

本次功能主要是ssm(spring+springmvc+mybatis)架构的功能,通过mybatis查询表功能,主要有service,mapper,mapper.xml等等,每次新增表,只需要在service服务类上标注我们新增的注解datatablename,这样查询表内容这个公共方法都可以获取到新增的数据库表。




转载请注明:http://www.vviuov.com/jbzs/1063143.html

  • 上一篇文章:
  • 下一篇文章: 没有了