使用注解注入:

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的更多相关文章

  1. javaSpring学习总结day_01

    本文章用于总结自己学习知识,有不足或错误之处清谅解. bean.xml 文件的读取方式: ClassPathXmlApplicationContext: 它是只能加载类路径下的配置文件 推荐 1.加载 ...

  2. JavaSpring【一、概述】

    主要内容 JavaSpring[一.概述] JavaSpring[二.IOC] JavaSpring[三.Bean] JavaSpring[四.Bean管理注解实现] JavaSpring[五.AOP ...

  3. day_02~day_09的Python语法基础

    Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...

  4. Python基础语法day_02——字符串规则

    day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> print(nam ...

  5. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  6. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  7. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  8. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. Nginx的动静分离

    Nginx的动静分离 在之前我们的负载均衡中,我们再jsp中设置了一个背景,这是一个静态资源,Tomcat处理静态资源的效率并没有Nginx高,我们可以通过动静分离将静态资源和动态资源分割开来,Tom ...

  2. NX二次开发-NXOPEN将工程图转成PDF文件

    NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <NXOpen/PrintPDFBuilder.hxx& ...

  3. 使用 Lookaside List 分配内存

    1. 概述 windows 提供了一种基于 lookaside list 的快速内存分配方案,区别于一般的使用 ExAllocatePoolWithTag() 系列函数的内存分配方式.每次从 look ...

  4. 创建一个学生表student,默认的表空间为users,字段自定,同时为表的各个字段分别添加合适的约束,然后测试约束的验证状态。

    create table student(id number(4) constraint prim_key primary key,name varchar(8) not null,sex varch ...

  5. docker删除常见命令

    $ docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器 1b7067e19d6f a840 ...

  6. netty UnpooledHeapByteBuf 源码分析

    UnpooledHeapByteBuf 是基于堆内存进行内存分配的字节缓冲区,没有基于对象池技术实现,这意味着每次I/O的读写都会创建一个新的UnpooledHeapByteBuf,频繁进行大块内存的 ...

  7. JS对象 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

    返回指定的字符串首次出现的位置 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(substring, startpos) 参 ...

  8. 接口测试 java+httpclient+testng+excel

    最近项目不忙,研究了下java实现接口自动化,借助testng+excel实现数据驱动 目前只用post方式测试,返回结果列没有通过列名去找 另外,请求参数是转义之后的,接口之间的依赖也是个问题,批量 ...

  9. try install gitlab ce at docker ce

    sudo docker run --detach \ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.30:8087/ ...

  10. fiddler突然间抓不到包了

    1.一直使用fiddler抓包,但是近几天fiddler突然间抓不到过滤地址的包了. 2.重装fiddler,未能解决. 3.设置取消浏览器的代理,未能解决. 4.关闭杀毒软件,未能解决. 5.换了火 ...