曾经的XML配置:

<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"  scope=""  init-method="" destroy-method="">
<property name="" value="" | ref=""></property>
</bean>

如果使用注解, 但没有导入以下jar包

或者在xml配置文件中没有配置以下内容(特别注意,头配置也有改动)  时, 无法成功创建bean

<!--告知spring在创建容器时要扫描的包,配置所需要的标签不是在beans的约束中,而是一个名称为
context名称空间和约束中-->
<context:component-scan base-package="com.itheima"></context:component-scan>

注解:

  1. 用于创建对象的

    它们的作用就和在xml配置文件中编写一个<bean>标签实现的功能是一样的

    @Component :

      作用: 用于把当前类对象存入Spring容器中

      属性:

        value: 用于指定bean的id . 当我们不写时,他的默认值是当前类名,且首字母改小写

      @Component(value="accountService")  如果value只有一个  可以写成@Component("accountService")

    @Controller  一般用于表现层

    @Service   一般用于业务层

    @Repository   一般用于持久层

    以上三个注解的作用与Component是一摸一样的.

    他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰

  2. 用于注入数据的

    它们的作用就和在xml配置文件中编写一个<property>标签实现的功能是一样的

     @Autowired

      作用: 自动按照类型注入. 只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配, 就可以注入成功

          如果ioc容器中没有任何bean的类型和要注入的变量类型匹配,则报错。

          如果Ioc容器中有多个类型匹配时:

          先按照类型圈定出来匹配的范围

          接下来会使用变量名称作为bean的id在圈定出来的范围中继续查找,

          如果有匹配的,则注入成功, 如果都不一样,就报错

          

      出现位置: 可以是变量上,也可以是方法上

      细节: 在使用注解注入时,set方法就不是必须的了   自动按照类型(或某类实现的接口类型)进行匹配

    @Qualifier

      作用: 在按照类型注入的基础之上  再按照名称注入.

          它在给类成员注入时不能单独使用,

          但是在给方法参数注入时可以单独使用

        

      属性: value:用于指定注入bean的id

      在给类成员注入时不能单独使用, 必须和Autowired配合使用

      

    @Resource

      作用: 直接按照bean的id注入. 它可以独立使用

      属性: name 用于指定beanid

      

   =====以上三个注入都只能注入其他bean类型的数据,=====

   =====而基本类型和String类型无法使用上述注解实现=====

    @Value

      作用: 用于注入基本类型和String类型的数据

      属性:  value: 用于指定数据的值.  它可以使用Spring中的SpEL(Spring的EL表达式)

                       SqEL的写法: ${表达式}

  3. 用于改变作用范围的

    它们的作用就和在bean标签中使用scope属性实现的功能是一样的

    @Scope

      作用: 用于指定bean的作用范围

      属性: value: 指定范围的取值. 常用的两个singleton prototype 默认单例

  4. 和生命周期相关

    它们的作用就和在bean标签中使用init-method和destroy-methode的作用是一样的

    @PreDestroy

      作用: 用于指定销毁方法

    @PreConstruct

      作用: 用于指定初始化方法

spring基于注解的IOC的更多相关文章

  1. spring基于注解的IoC以及IoC的案例

    1.Spring中IoC的常用注解 1.1明确: (1)基于注解的配置和xml的配置要实现的功能都是一样的,都是要降低程序之间的耦合,只是配置的形式不一样 2.案例:使用xml方式和注解方式实现单表的 ...

  2. Spring 基于注解的 IOC 配置

    创建 spring 的 的 xml 配置 文件 <context:component-scan base-package="com.itheim"/> 指定创建容器时要 ...

  3. 10 Spring框架--基于注解的IOC配置

    1.工程环境搭建 2.基于注解的IOC配置 IOC注解的分类 (1)用于创建对象的 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的@Component: 作用: ...

  4. Spring基于注解的Cache支持

    Spring为我们提供了几个注解来支持Spring Cache.其核心主要是@Cacheable和@CacheEvict.使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回 ...

  5. Spring 基于注解零配置开发

    本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:< Spring 基于注解零配置开发 > 一:搜索Bean 再也不用在XML文件里写什么配置信息了. Sprin ...

  6. 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置

    复制依赖和改jar包方式 src下的都复制过来. 复制到新项目里了 bean.xml里面复制上面一行代码到下面.把aop改成context. 配置spring容器创建时要扫描的包 Service的配置 ...

  7. (spring-第4回【IoC基础篇】)spring基于注解的配置

    基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置:bean的定义信息是通过在bean实现类上标注注解实现. 也就是说,加了注解,相当于在XML中配置了,一样 ...

  8. Spring基于注解和XML混合方式的使用

    首先要明白,基于注解和XML两种方式的实现功能是一样的,只是两种不同的配置方式. 一.IoC配置 1.配置xml 在使用注解与xml结合的方式配置IoC之前,首先要引入context标签: xmlns ...

  9. Spring基于注解@Required配置

    基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入.而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身. ...

随机推荐

  1. jackrabbit官方英文文档加补充(转载)

    关于Jackrabbit To get started with Jackrabbit you should first become familiar with the JCR API. Downl ...

  2. 例题6-16 单词 UVa10129

    1.题目描写叙述:点击打开链接 2.解题思路:本题利用欧拉回路存在条件解决. 能够将全部的单词看做边,26个字母看做端点,那么本题事实上就是问是否存在一条路径,能够到达全部出现过的字符端点. 因为本题 ...

  3. 《MySQL必知必会学习笔记》:子查询

    子查询 在開始了解子查询之前,首先做下准备工作,建立3个表, 一个是customers表,当中包含:客户名字.客户ID.客户Tel等. 一个是orders表,当中包含:订单号.客户ID.订单时间等. ...

  4. Part of defining a topology is specifying for each bolt which streams it should receive as input

    http://storm.apache.org/ [doing for realtime processing what Hadoop did for batch processing ] Apach ...

  5. Python使用setuptools打包源文件(精简)

    目录结构: F:\capt>tree ├─abc_test │  ├─__init__.py │  ├─comman_line.py ├─setup.py #__init.py__ def he ...

  6. html5学习笔记(1)-新标签

    最近在做的项目中用到了Html5的部分标签,经师父提醒感觉自己用section的次数多的有点过分,今天去找了一篇HTML5新标签的使用方法,特意贴了上来,感谢原作者的分享,方便以后自己使用~~~ HT ...

  7. BZOJ 2002 Bounce 弹飞绵羊 —— 分块算法

    题目链接:https://vjudge.net/problem/HYSBZ-2002 2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Li ...

  8. c/c++通用内存泄漏检测框架GMFD(General Memory Fault Detection Framework)

    http://qa.baidu.com/blog/?p=171 1 背景: x86平台有完善的用户态检测内存工具比如valgrind等,可以监控程序运行中详细的内存信息,从而精确定位内存问题.然而随着 ...

  9. uglifyjs2全局混淆

    从git克隆uglifyjs2源码后,进入目录: npm link 编译并安装uglifyjs2成功,就可以直接调用uglifyjs命令了.但是在进行全局混淆时出现了问题,虽然指定了文件topvar. ...

  10. UniCode转码

    <script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function ( ...