2.xml使用注解 xml 用来定义bean的信息,注解用来配置依赖信息 1) 在配置文件中配置bean 2)在javaBean中用注解来指定依赖注入 3)在配置文件中开启注解扫描 @Resource标签 java标签的资源注解 @Autowired(Spring自定义的注解),注解可以加在setter注入中,也可以加在field(field注入) @Resource 按名称注入,找到名称相同,则直接注入,找不到名称相同的则找类型 @Atutowired 按类型注入,会先按类型找,找不到再找名称,required=false,用来指定,该依赖的对象是否是必须的。 @Qualifier(value="persondao2")---用来指定要注入的bean叫什么名字,与@Atutowired 配合使用 @Resource(name="persondao2") ---用来指定要注入的bean叫什么名字,可以在resource中使用name属性来指定所要指定的bean的名称 推荐使用@Resource! 代码: @Autowired @Qualifier(value="persondao2") // @Resource(name="persondao2") private IPesonDaoImp dao; 开启注解: <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-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <context:annotation-config /> 3.使用注解方案2:完全使用注解---(必须掌握) 1).如何指定如些业务组件是需要放到Spring容器中管理的---注解 2).给组件指定依赖---使用@Autowire或者@Resource标签 在类名前加入下面注解, @Service(业务层组件) 控制-->业务层---》持久层,不能跨层调用 @Repository(持久层组件) @Controller(控制层组件) @Component(不知道哪一层就用它) 用这些标签指定的bean,bean的名称全部小写 如何指定bean的名称??? 使用value属性即可,如@Repository(value="personDao") Bean的作用域????? 构造函数只执行一次,默认是单例的 singleton,几个标签的作用域是一样的。 可以用@Scope @Controller(value="personService") @Scope("prototype")来解决作用域问题,这里是多例的。 xml,如果有多个包,直接使用逗号隔开