正文
【spring】之xml和Annotation,Bean注入的方式
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
基于xml形式Bean注入
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PersonBean {
private Integer id;
private String name;
private String address;
}
<bean class="com.luna.annotation.PersonBean" id="personBean">
<property name="name" value="张三"/>
<property name="address" value="上海"/>
<property name="id" value=""/>
</bean>
//基于xml完成数据Bean注入
@Test
public void test(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
PersonBean personBean = (PersonBean) applicationContext.getBean("personBean");
System.out.println(personBean.getAddress());
}
基于Annotation形式Bean注入
@Configuration//告诉spring这是个配置类
public class PersonBeanConfig { @Bean(value = "person")//默认情况下使用方法名作为属性名
public PersonBean personBean(){
return new PersonBean(,"李四","北京");
} }
//基于纯注解完成数据注入
@Test
public void test(){
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(PersonBeanConfig.class);
PersonBean personBean = applicationContext.getBean(PersonBean.class);//类型
System.out.println(personBean.getAddress());
PersonBean person = (PersonBean)applicationContext.getBean("person");//属性名
System.out.println(person.getAddress());
String[] names= applicationContext.getBeanNamesForType(PersonBean.class);//查看在容器中当前Bean的属性名
for(String name:names){
System.out.println(name);
}
}