javaSpring学习总结day_02
程序员文章站
2023-11-13 13:03:40
使用注解注入: ......
使用注解注入:
1.用于创建bean对象
@component:
作用:相当于配置了一个bean标签
位置:类上面
属性:value,含义是bean的id,当不写时,有默认值,默认值是当前类的短名,首字母小写
由此注解衍生的三个注解:
@controller 一般用于表现层注解
@service 一般用于业务层
@repository 一般用于持久层
他们和@component的作用及其属性都是一模一样的
2.用于注入数据的
@authowired
作用:自动按照类型注入。只要有位移的类型匹配就可以。
当我们使用注解注入时,set方法就不是必须的。
如果注入的bean在容器中不唯一,他会把变量名称作为bean的id,在容器中查找,找到后也能注入成功
如果没有找到一致的bean的id时,则报错
@qualifier :@qualifier("beanid") 或 @qualifier(value = "beanid") 当"="号前面为value且注解只有一个属性时可以省略赋值名value不写
@authowired
@qualifier("beanid")
class classname;
或:
@authowired
public void setname(@qualifier("beanid") class classname){}
作用:在自动按照类型注入的基础上,再按照bean的id注入。他在给类成员注入数据时,不能独立使用,但是给方法的形参注入数据时们可以独立使用
属性:
value:用于指定bean的id
@resource :@resource(name = "beanid")
作用:直接按照bean的id注入
属性:
name:用于指定bean的id
以上三个注解都是用于注入其他bean类型的。用于注入基本类型和string类型需要使用value
@value:
作用:用于注入基本类型和string类型数据,它可以借助spring的el表达式读取properties文件中的配置
属性:
value:用于指定要注入的数据
3.用于改变作用范围的
@scope:
作用:用于改变bean的作用范围
属性:
value:用于指定范围的取值,取值和xml中scope取值一样:
singleton prototype request session globalsession
4.spring的新注解
@bean 把方法的返回值存入spring容器中,该注解有一个属性,name:用于指定bean的id,当不指定时,有默认值,默认值是方法的名称
@configuration 把当前类看成spring的配置类
@import 导入其他配置类 @import(jdbcconfig.class)
@propertysource 导入.properties资源文件 @propertysource("classpath:config/jdbcconfig.properties"
使用注解注入时,需要在bean.xml中配置:
<context:component-scan base-package="包名"/>
这是用来告知spring在创建容器时要扫描的包,当配置了这个标签后,spring创建容器就会去指定的包下找对应的注解
这个标签是在一个context的名称空间里面,所以必须先导入context的包
除此之外,可以不在bean.xml中配置也可以做到这种效果:
首先需要先创建一个java类,然后在这个类的上方使用@configuration标签,就把当前类看做成spring的配置类
然后,使用@componentscan(basepackages = "包名")标签,就可以达成<context:component-scan base-package="包名"/>的效果