美文网首页
@Service注解类通过依赖注入初始化成员变量

@Service注解类通过依赖注入初始化成员变量

作者: cherishpf | 来源:发表于2020-04-29 17:23 被阅读0次

使用场景:

如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后被自动调用。

import lombok.Data;
import org.springframework.stereotype.Component;
/**
* Bean实例
*/
@Data
@Component
public class Job {
    private String jobId;
}

service类的代码如下:

import com.space.aspect.bo.Job;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
public class JobService {
    private Job job;

    // 构造器注入方式
    @Autowired
    JobService(Job job){
        this.job = job;
    }

    @PostConstruct
    private void init(){
        // 初始化成员变量
        job.setJobId("testJobId");
    }

    // 对外提供的一个方法
    public String getJobId() {
        return job.getJobId();
    }
}

执行顺序
JobService有参构造器注入Job >> @PostConstruct初始化Job变量

另一种方式(不推荐):

import com.space.aspect.bo.Job;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

@Service
public class JobService {
    // 属性注入方式
    @Autowired
    private Job job;

    // 无参构造器(可以不写)
    JobService(){
    }

    @PostConstruct
    private void init(){
        // 初始化成员变量
        job.setJobId("testJobId");
    }

    // 对外提供的一个方法
    public String getJobId() {
        return job.getJobId();
    }
}

执行顺序
JobService无参构造器>>@Autowired注入Job >> @PostConstruct初始化Job变量

相关文章

  • @Service注解类通过依赖注入初始化成员变量

    使用场景: 如果想在生成对象时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入,那么就无法在构造函数中实...

  • SpringIOC

    作为一个容器,通过配置文件或者注解描述类与类之间的依赖关系,自动完成类的初始化和依赖注入的工作 Spring的核心...

  • SpringBoot项目启动成功,访问API时报错。页面显示 w

    Service层实现类未添加注解@Autowired。 @Autowired的作用是自动注入依赖的Bean。 修改...

  • Dagger2的学习

    Dagger :是安卓依赖注入框架。方便管理对象的初始化与使用。 关于相关注解@Inject:在需要注解的变量之前...

  • @Component

    用例1: 成员变量自动导入, 前提是成员变量已被注入到spring容器中,并且成员变量被构造方法依赖注入 用例2:...

  • @Resource 和 @Autowired

    1. 用途 @Resource和@Autowired注解都是用来实现依赖注入的,可以对成员变量(两者如果都写在字段...

  • 第二章:保证稳定性和兼容性

    2.7 快速初始化成员变量 C++98:使用 ‘=’ 初始化类中成员变量,成员变量必须满足:① static ② ...

  • Dagger2 源码分析

    Dagger简单介绍 Dagger2涉及到依赖注入,有关依赖注入的请到理解依赖注入 通过注解方式实现依赖注入分为两...

  • spring_IOC总结(三)注解配置--依赖注入

    基于注解依赖注入 xml配置 使用注解--依赖注入

  • 基本Annotation

    java中的类注解可以用来修饰如下元素:类,成员方法,成员变量,构造函数,形参,局部变量,接口。 类注解不会对程序...

网友评论

      本文标题:@Service注解类通过依赖注入初始化成员变量

      本文链接:https://www.haomeiwen.com/subject/dssnwhtx.html