春天通过注解实现工具类注入服务方法

  
  

在开发过程中,我们经常有碰到工具类里面,要执行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;
  ....  

春天通过注解实现工具类注入服务方法