在开发过程中,我们经常有碰到工具类里面,要执行CRUD操作,需要调用到服务实现类,这时可以通过下述方法来得到。
引用>方式一【比较繁琐,内部静态化】
1注入@ component h5>
在持久层,业务层和控制层中,分别采用@,@ service和@ controller对分层中的类进行凝视;而用@ component对那些比较中立的类进行凝视。
引用>
【如下图:@,@ service, @ controller, @ component在同一路径下,分别对不同类型的类进行凝视】
2注入@PostConstruct h5>
通过@PostConstruct和@PreDestroy方法实现初始化和销毁豆之前进行的操作。
引用>
通过步骤1:定义一个静态的工具类参数,步骤2在用@PostConstruct初始化中,把该静态参数实例化<代码> ' ' ' @ component 公开课SMSUtils { @ autowired 私人ISmsService smsService;//添加所需服务的私有成员【不能加静态的,不然smsService会等于空,因为静态的方法是先于对象创建之前就已经加载的方法,先于构造执行,是属于类的方法】 私有静态SMSUtils SMSUtils;//步骤1静态初使化一个工具类这样是为了在春天初使化之前 公共静态最终字符串SMS_PHONE_CODE=皒xxxx”; 公共静态最终字符串SMS_REG_SUCCESS=皔yyyyy”; @PostConstruct 公共空间init () { smsUtils=; smsUtils。smsService=this.smsService;//步骤2初使化时将已静态化的testService实例化,即可以使用smsUtils.smsService。smsServicelai来调用服务服务 }//发送短信验证码参数请严格按照模板输出的字段顺序来 公共静态孔隙sendSms (String电话,String[]参数,字符串templateCode) { SmsResponse SmsResponse=smsUtils.smsService。sendSms(电话、jsonStr templateCode); } }代码>方式二【交给春来处理,推荐】步骤1注入@ component,该工具类已经注入到spring中步骤2在需要调用工具类的类下注该工具类@ autowired
<代码> @ component 公开课SMSUtils { @ autowired 私人ISmsService smsService; … }代码><代码> @RestController 公开课AuthController延伸SuperRestController { @ autowired 私人SMSUtils SMSUtils; .... 代码>春天通过注解实现工具类注入服务方法