使用註解裝配Bean
阿新 • • 發佈:2018-12-15
註解@Component代表Spring Ioc 會把 這個類掃描生產Bean 例項,而其中 value屬性代表這個類在Spring 中的id,這就相當於XML方式定義的Bean 的 id
現在有了這個類還不能測試,因為Spring IOC 並不知道 需要去哪裡掃描物件,這時候可以使用一個Java Config 來告訴它
package com.nf147.manage.spring; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component(value= "role") public class Big { @Value("1") private int id; @Value("可愛的小豬") private String name; @Value("1") private int age; @Override public String toString() { return "Big{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
注意:包名要和程式碼Big類一致,
@ComponentScan 代表 進行掃描,預設是掃描當前包的路徑,spring 的包名要和它保持一致才能說掃描,否則是沒有的
package com.nf147.manage.spring; import org.springframework.context.annotation.ComponentScan; @ComponentScan public class PojoConfig { }
呼叫程式碼:
使用了 AnnotationConfigApplicationContext類去初始化Spring Ioc 容器,它是配置項是Big的PojoConfig類,這樣Spring Ioc 就會根據註解的配置去解析對應的資源,來生成容器。
package com.nf147.manage.spring; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context= new AnnotationConfigApplicationContext(PojoConfig.class); Big bean = context.getBean(Big.class); System.out.println(bean); } }
效果圖: