在Spring中使用annotation对bean进行管理,这里就不再使用xml配置。方法如下:
首先还是需要在spring的配置文件application.xml文件中进行说明,需要添加如下代码:
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
上面代码片段是添加在xml文件的头文件中的,为了进行说明此spring所管理的bean是用
annotation进行管理,还需要进行如下的说明。
<context:annotation-config />
<context:component-scan base-package="com.bd"/>
第一行语句说明的是annotation配置, 让Spring启用对annotation的支持
第二行语句说明的是在哪个包进行扫描,发现相应的注解,就进行解读。
Demo如下:
User.java文件
package com.bd.model;
import org.springframework.stereotype.Component;
@Component(value="user")
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
DemoTest.java文件
package com.bd.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.wyq.bd.User;
public class DemoTest {
@Test
public void myTest(){
<span style="white-space:pre"> </span>ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User)ctx.getBean("user");
System.out.println(user);
}
}
此时spring配置文件,application.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="com.wyq"/>
</beans>
这样其实根本不需要再配置文件中进行如下的声明:
<bean id="user" class="com.bd.model.User"></bean>
PS:首先需要进行说明的是,对于注解的关键词,个人习惯于用@Component(value=“xxx”)进行说明,对于需要引用此bean的地方,用@Resource(name="xxx")。当然,还有许多其他注解的关键词,这里不再说明。
其次,其实个人觉得用注解来说还是相对的方便一点,但是有一点还是比较迷糊的就是如果用注解,那么对于属性的注入又是怎么回事呢?