我刚刚看到一些样本,其中@Autowire用于非setter方法。
@Autowired
public void doSomething(MyType t){
System.out.println(t);
}
答案 0 :(得分:1)
@Target(value={CONSTRUCTOR,METHOD,PARAMETER,FIELD,ANNOTATION_TYPE})
@Retention(value=RUNTIME)
@Documented
public @interface Autowired
正如我们从官方文档中看到的那样@Autowired Marks构造函数,字段,setter方法或配置方法,由Spring的依赖注入工具自动装配。 - https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html
但是,Spring怎么会知道你的方法是否是配置方法?当Spring找到@Autowired时,它将尝试查找与方法参数匹配的bean,并将调用该方法。
答案 1 :(得分:1)
spring doc清楚地说,doSomething(<>)
可以应用于具有任意名称和/或多个参数的构造函数,字段,Setter和Arbitrary方法。
回答你的问题,想到android:theme="@android:style/Theme.NoTitleBar"
是一个任意的方法,应该由容器调用而不是你自己。
Have a look at this thread