javaSpring学习总结day_02
使用注解注入:
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="包名"/>的效果
javaSpring学习总结day_02的更多相关文章
- javaSpring学习总结day_01
本文章用于总结自己学习知识,有不足或错误之处清谅解. bean.xml 文件的读取方式: ClassPathXmlApplicationContext: 它是只能加载类路径下的配置文件 推荐 1.加载 ...
- JavaSpring【一、概述】
主要内容 JavaSpring[一.概述] JavaSpring[二.IOC] JavaSpring[三.Bean] JavaSpring[四.Bean管理注解实现] JavaSpring[五.AOP ...
- day_02~day_09的Python语法基础
Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...
- Python基础语法day_02——字符串规则
day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> print(nam ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
随机推荐
- nacos注册中心配置命名服务不生效问题
nacos作为注册中心指定命名空间,配置如下: 但是启动之后发现服务都默认注册到了public这个命名空间下面,也就是指定的命名空间不生效 这是因为注册中心使用的命名空间的配置不是nacos.conf ...
- is与==的区别
is:比较两边的内存地址是否一样 ==:比较两边的数据值是否一样 list1 = [1, 2] list2 = [1, 2] if list1 == list2: # == 是比较数据 print(' ...
- Download Blackarch Linux
https://www.blackarch.org/
- [学习笔记] $FWT$
\(FWT\)--快速沃尔什变化学习笔记 知识点 \(FWT\)就是求两个多项式的位运算卷积.类比\(FFT\),\(FFT\)大多数求的卷积形式为\(c_n=\sum\limits_{i+j=n}a ...
- NX二次开发-UFUN创建工程图注释UF_DRF_create_note
NX9+VS2012 #include <uf.h> #include <uf_drf.h> #include <NXOpen/Annotations_Note.hxx& ...
- AdaBoost笔记之原理
转自:https://www.cnblogs.com/ScorpioLu/p/8295990.html 一.Boosting提升算法 AdaBoost是典型的Boosting算法,属于Boosting ...
- Java-Class-C:org.springframework.http.HttpHeaders
ylbtech-Java-Class-C:org.springframework.http.HttpHeaders 1.返回顶部 1.1. import org.springframework.htt ...
- (转)在Source Insight中看Python代码
http://blog.csdn.net/lvming404/archive/2009/03/18/4000394.aspx SI是个很强大的代码查看修改工具,以前用来看C,C++都是相当happy的 ...
- 54Mbps、150Mbps、433Mbps 你知道这三个Wi-Fi速率怎么算的吗?
802.11g能够提供54Mbps的最大速率, 802.11n和802.11ac单流分别能够提供150Mbps和433Mbps的最大速率,这些数字是怎么算的呢?(看红字,更容易理解哟) ...
- 实时查询系统架构:spark流式处理+HBase+solr/ES查询
最近要做一个实时查询系统,初步协商后系统的框架 1.流式计算:数据都给spark 计算后放回HBase 2.查询:查询采用HBase+Solr/ES