@Resource(重要)
a>默认按名称,名称找不到,按类型
b>可以指定特定名称
c>推荐使用
d>不足:如果没有源码,就无法运用annotation,只能使用xml
@Componert
a>初如化的名字默认为类名首字母小写
b>可以指定初始化bean的名字
@Resource
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<bean id="userDaoImpl" class="com.bjsxd.dao.impl.UserDaoImpl">
</bean>
<bean id="userDaoImpl2" class="com.bjsxd.dao.impl.UserDaoImpl">
</bean>
<bean id="userService" class="com.bjsxd.service.UserService">
</bean>
</beans>
对set方法进行注入
package com.bjsxd.service;
import javax.annotation.Resource;
import com.bjsxd.dao.UserDao;
import com.bjsxd.model.User;
public class UserService {
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
@Resource(name="userDaoImpl2")
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(User user) {
userDao.save(user);
}
}
@Component
自动扫描注入
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config />
<context:component-scan base-package="com.bjsxt" />
</beans>
package com.bjsxt.dao.impl;
import org.springframework.stereotype.Component;
import com.bjsxt.dao.UserDao;
import com.bjsxt.model.User;
@Component("userDaoImpl")
public class UserDaoImpl implements UserDao{
@Override
public void save(User user) {
System.out.println("user save!");
}
}
package com.bjsxt.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.bjsxt.dao.UserDao;
import com.bjsxt.model.User;
@Component("userService")
public class UserService {
private UserDao userDao;
public UserDao getUserDao() {
return userDao;
}
@Resource(name="userDaoImpl")
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(User user) {
userDao.save(user);
}
}