import com.example.javautilsproject.service.AutoMethodDemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* springboot
静态方法获取
bean
的三种方式
(
一
)
* @author: clx
* @version: 1.1.0
*/
@Component
public class StaticMethodGetBean_1 {
@Autowired
private AutoMethodDemoService autoMethodDemoService;
@Autowired
private static AutoMethodDemoService staticAutoMethodDemoService;
@PostConstruct
public void init() {
staticAutoMethodDemoService = autoMethodDemoService;
}
public static String getAuthorizer() {
return staticAutoMethodDemoService.test();
}
}
注解@PostConstruct说明
PostConstruct
注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化
。此方法必须在将类放入服务之前调用。支持依赖关系注入的所有类都必
须支持此注释。即使类没有请求注入任何资源,用 PostConstruct
注释的方法也必须被调用。只有一个方法可以用此注释进行注释。
应用 PostConstruct 注释的方法必须遵守以下所有标准:
该方法不得有任何参数,除非是在 EJB 拦截器 (interceptor)
的情况下,根据 EJB 规范的定义,在这种情况下它将带有一个
InvocationContext 对象 ;
该方法的返回类型必须为 void;
该方法不得抛出已检查异常;
应用 PostConstruct 的方法可以是 public、protected、package private
或 private;
除了应用程序客户端之外,该方法不能是 static;
该方法可以是 final;
如果该方法抛出未检查异常,那么不得将类放入服务中,除非是能够处
理异常并可从中恢复的 EJB。
方式二 启动类ApplicationContext
实现方式:在springboot的启动类中,定义static变量ApplicationContext,
利用容器的getBean方法获得依赖对象
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* @author: clx
* @version: 1.1.0
*/
@SpringBootApplication