1. 以下类是一个配置类,它的作用和bean.xml是一样的
    注解:
      @Configuration
        作用:
           用于指定当前类是一个spring配置类,当创建容器时会从该类上加载注解。
           获取容器时需要使用AnnotationApplicationContext(有@Configuration注解的类.class)。
           ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);
        
    属性: value:用于指定配置类的字节码
        细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
  1.   @ComponentScan
        作用: 用于通过注解指定Spring在创建容器时要扫描的包
  1.      代替了:
  1.     <!-- 告知spring在创建容器时要扫描的包 -->
  2.     <context:component-scan base-package="com.itheima"></context:component-scan>
  1.  
  1.     属性: basePackages value 两者的作用是一样的,都是用于指定创建容器时要扫描的包
           我们使用此注解就等同于在xml中配置了
           需要扫描多个包时, 使用{}(即数组的赋值方式)
        源码:
      @Bean
        作用: 该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器
        属性: name 用于指定beanid 默认值是当前方法的名称
  1.     @Bean(name="runner")
  2.     @Scope("prototype")
  3.   public QueryRunner createQueryRunner(@Qualifier("ds2") DataSource dataSource){
  4.   return new QueryRunner(dataSource);
  5.   }

     代替了:

  1.     <!--配置QueryRunner-->
  2.     <bean id="runner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype">
  3.     <!--注入数据源-->
  4.     <constructor-arg name="ds" ref="dataSource"></constructor-arg>
  5.     </bean>
  1. @Bean(name="ds2")
  2. public DataSource createDataSource(){
  3. try {
  4. ComboPooledDataSource ds = new ComboPooledDataSource();
  5. ds.setDriverClass(driver);
  6. ds.setJdbcUrl(url);
  7. ds.setUser(username);
  8. ds.setPassword(password);
  9. return ds;
  10. }catch (Exception e){
  11. throw new RuntimeException(e);
  12. }
  13. }

      代替了:

  1.   <!-- 配置数据源 -->
  2. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  3. <!--连接数据库的必备信息-->
  4. <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  5. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/eesy"></property>
  6. <property name="user" value="root"></property>
  7. <property name="password" value="1234"></property>
  8. </bean>

    细节: 当我们使用注解配置方法时, 如果方法有参数, spring框架回去容器中查找有没有类型同参数匹配 的bean对象

       查找的方式同AutoWired注解的方式是一样的

  @Import

    作用: 用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration注解。当然,写上也没问题。

       属性: value[]:用于指定其他配置类的字节码。 

         当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类

  1.       @Configuration
          @ComponentScan(basePackages = "com.itheima.spring")
          @Import({ JdbcConfig.class})
          public class SpringConfiguration { }
  1.       @Configuration
  2.       @PropertySource("classpath:jdbc.properties")
  3.       public class JdbcConfig{ }

@PropertySource

  1.   作用:用于加载.properties文件中的配置。
          例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,
          就可以使用此注解指定properties配置文件的位置
       属性: value[]:用于指定properties文件位置。如果是在类路径下,需要写上classpath:
      

      

    在JdbcConfig中使用SpEL通过key获取properties文件中的相应的值     通过@Value注入

    

  1.  
  1.  

使用配置类而不使用XML文件(代替bean.xml)对spring进行配置的更多相关文章

  1. Maven入门2-pom.xml文件与settings.xml文件

    Maven入门2-pom.xml文件与settings.xml文件 本文内容来源于官网文档部分章节,settings.xml文件:参考http://maven.apache.org/settings. ...

  2. 使用Pull解析器生成XML文件和读取xml文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  3. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  4. C# 操作XML文件,用XML文件保存信息

    using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO ...

  5. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  6. 创建xml文件、解析xml文件

        1.创建XML文件: import codecs import xml.dom.minidom doc=xml.dom.minidom.Document() print doc root=do ...

  7. Struts2 学习笔记——struts.xml文件之Bean的配置

    Struts2的大部分核心组件不是以硬编码的形式写在代码中,而是通过自身的IoC容器来管理的. Struts2以可配置的形式来管理核心组件,所以开发者可以很容易的扩展框架的核心组件.当开发者需要扩展或 ...

  8. XML文件中关键字自动提示和不全配置

    一.获得mybatis-3-config.dtd.mybatis-3-mapper.dtd 这两个文件. 建立一个Maven的项目 在Pom.xml文件中的Mybatis jar包的下载设置(也可以从 ...

  9. SSM框架中mapper和mapping.xml文件在同一个包下需要的配置

    前言 当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图:  因为mave ...

随机推荐

  1. Neutron Messaging Callback System

    callback system 用在进程内部通信,Messaging Callback System是给进程间通信.为了agent不通过RPC就能得到resource的变化. 目前用在: QoS po ...

  2. 分享知识快乐自己:Layui 常用样式

    下载 样式包  Layui  layer 引入 js 及 样式: <link rel="stylesheet" href="${ctx}/static/layui/ ...

  3. 深度学习—BN的理解(二)

    神经网络各个操作层的顺序: 1.sigmoid,tanh函数:conv -> bn -> sigmoid -> pooling 2.RELU激活函数:conv -> bn -& ...

  4. web项目路径如何更改

  5. 短连接时出现connection reset问题的原因

    网上摘取的感觉有用的文章,保存下来,让大家学习交流! 在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰 ...

  6. PS 滤镜——(扭曲)球面化 Spherize

    %%%% Spherize clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorit ...

  7. 说几个JS优化技巧吧

    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...

  8. ACM学习历程—HDU1023 Train Problem II(递推 && 大数)

    Description As we all know the Train Problem I, the boss of the Ignatius Train Station want to know  ...

  9. 【QT】对Qt项目开发中遇到的问题的总结

    1. QMessageBox中文乱码 这里的中文乱码是指只有QMessageBox才出现中文乱码,其他都可以正常使用的情况.有些博客中提到使用QString::fromUtf8()函数, 实测有些情况 ...

  10. [转]CSS3盒模型display:box详解

    时间:2014-02-25来源:网络作者:未知编辑:RGB display:box;box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布 ...