1、在applicationContext.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!-- 在配置文件 引入约束 xsd schema 约束 -->
<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">
<!-- 通过xml 配置bean -->
<bean id="orderService" class="cn.itcast.spring.d_mixed.OrderService" />
<bean id="orderDAO" class="cn.itcast.spring.d_mixed.OrderDAO" />
<!-- 使用注解依赖注入 -->
<context:annotation-config />
<!--通知spring容器,注解Bean所在位置-->
<context:component-scan bese - package="com.china,xxxxx"/>
</beans>
补充:注解和配置文件混合使用
Bean定义配置,使用配置文件方式
Bean关系依赖注入,使用注解配置方式
如果在配置使用 context:component-scan 具有 context:annotation-config 效果
如果Bean是通过xml配置,想使用注解依赖注入,必须单独配置
<context:annotation-config />
2、在类进行标注
除了@Component外,Spring提供了3个功能基本和@Component等效的注解
@Repository 用于对DAO实现类进行标注
@Service 用于对Service实现类进行标注
@Controller 用于对Controller实现类进行标注
目的:为了让标注类本身的用途清晰
例子:
/**业务对象**/
//xml配置<bean id="xxxx" class="xxxxx">
//@Component("userService") 当中 userService 相当于bean id属性
@Service("userService")
public class UserService{
}
补充:
指定bean的作用范围:
使用注解配置的Bean和<bean>配置的一样,默认作用范围都是singleton
@Scope注解用于指定Bean的作用范围
例子:
@Component
@Sope(“prototype”)
public class Car{
//内部代码
}
3、自动装配
使用@Autowired进行自动注入
@Autowired 默认按照类型进行注入
如果存在两个相同Bean类型相同,则按照名称注入
@Autowired注入时可以针对成员变量或者setter方法
例子:
UserService类:
@Service
public class UserService{
@Autowired
private UserDao userDao;
pubilc void regist(){
userDao.save();
}
}
UserDao类:
@Repository
public class UserDao{
public void save(){
System.out,,println("Save ...");
}
}