[Spring学习笔记 3 ] spring 注解详解,完全注解,常用注解

时间:2021-05-25 05:45:43
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,如果有多个包,直接使用逗号隔开