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

时间:2021-05-22 20:48:31
.xml使用注解
xml 用来定义bean的信息,注解用来配置依赖信息
) 在配置文件中配置bean
)在javaBean中用注解来指定依赖注入
)在配置文件中开启注解扫描 @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 /> .使用注解方案2:完全使用注解---(必须掌握)
).如何指定如些业务组件是需要放到Spring容器中管理的---注解
).给组件指定依赖---使用@Autowire或者@Resource标签 在类名前加入下面注解,
@Service(业务层组件) 控制-->业务层---》持久层,不能跨层调用
@Repository(持久层组件)
@Controller(控制层组件)
@Component(不知道哪一层就用它) 用这些标签指定的bean,bean的名称全部小写
如何指定bean的名称???
使用value属性即可,如@Repository(value="personDao")
Bean的作用域?????
构造函数只执行一次,默认是单例的 singleton,几个标签的作用域是一样的。 可以用@Scope
@Controller(value="personService")
@Scope("prototype")来解决作用域问题,这里是多例的。 xml,如果有多个包,直接使用逗号隔开