让spring自动装配,只要设置需要自动装配的<bean>中的autowire属性。如下设置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean name="loginAction" class="com.wen.action.LoginAction"
autowire="byName"></bean>
<bean id="userService" class="com.wen.service.impl.UserServiceImpl"></bean>
</beans>
这种只设置需要自动装配的<bean>没有任何问题,如果需要设置整个spring配置文件的<bean>为默认自动装配,只需要在根元素<beans>中设置default-autowire。如下设置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byName">
<bean name="loginAction" class="com.wen.action.LoginAction"></bean>
<bean id="userService" class="com.wen.service.impl.UserServiceImpl"></bean>
</beans>
提交后会出现空指针异常,说明loginAction的关联对象没有装配。在网上找到一种解决方法。
将spring配置文件修改成如下:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
<bean name="loginAction" class="com.wen.action.LoginAction"></bean>
<bean id="userService" class="com.wen.service.impl.UserServiceImpl"></bean>
</beans>
这样默认自动装配才会有效.