我希望这不是一个问题的太多菜,我对Spring来说还是一个新手。 bean类可以包含静态方法吗?我最初的想法是否定的,因为静态方法是全局的,每个应用程序和共享的线程都有一个实例,但bean可能没有这样定义。
我试着搜索这个问题,但找不到明确的答案。
答案 0 :(得分:1)
是,
spring bean也可能有静态方法。
使用构造函数@Autowired
@Component
public class Boo {
private static Foo foo;
@Autowired
public Boo(Foo foo) {
Boo.foo = foo;
}
public static void randomMethod() {
foo.doStuff();
}
public static int getThree(){
return 3;
}
}
您也可以这样做: 使用@PostConstruct将值移交给静态字段
这里的想法是在bean由spring配置之后将bean移交给静态字段。
@Component
public class Boo {
private static Foo foo;
@Autowired
private Foo tFoo;
@PostConstruct
public void init() {
Boo.foo = tFoo;
}
public static void randomMethod() {
foo.doStuff();
}
}
答案 1 :(得分:0)
它可以被包含。
@Service
public class TestService {
@Autowired
private TestDao testDao;
public static void test(){
System.out.println("test");
}
}
@RestController
@RequestMapping("/api/")
public class TestController {
@Autowired
private TestService testService;
@PostMapping("test")
public String test(){
BrandTopNumService.test();
return "ok";
}
}