1、xml配置(摘抄自:https://www.cnblogs.com/zyx1301691180/p/7665971.html)

  一、setter方法配置Bean:

    1、创建一个 Spring Bean Configuration File

    2、配置Bean代码:

<bean id="address" class="com.spring.xmlBean.Address"></bean>
<bean id="person" class="com.spring.xmlBean.Person"></bean>

    3、给Bean配置属性:

    <!-- 添加 Address 和 Person -->
    <bean id="address" class="com.spring.xmlBean.Address">
        <property name="city" value="日照"></property>
        <property name="province" value="山东"></property>
    </bean>

    <bean id="person" class="com.spring.xmlBean.Person">
        <property name="name" value="Little-Koala"></property>
        <property name="age" value="18"></property>
        <!-- 通过 ref 引用了 address 这个 bean -->
        <property name="address" ref="address"></property>
    </bean>

  二:构造器配置Bean

<bean id="address" class="com.spring.xmlBean.Address">
        <constructor-arg name="city" value="日照"></constructor-arg>
        <constructor-arg name="province" value="山东"></constructor-arg>
        <!--
        <property name="city" value="日照"></property>
        <property name="province" value="山东"></property>
         -->
</bean>

2、基于注解的配置

  一:注解解析

  @Component 是通用标注

  @Controller 标注 web 控制器

  @Service 标注 Servicec 层的服务

  @Respository 标注 DAO 层的数据访问

  二:注解配置Bean

  使用注解配置bean时候,并没有指定bean的id,那么Spring帮我们创建 bean时候会给一个默认的id,id为类名首字母小写

  当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致

@Service("beanFactory") public class BeanFactroyImpl implements BeanFactory {

  @Autowired
  private UserRepository userRepository;}
@Component
public class LogonService {}

  三:配置文件

  需要在applicationContext.xml文件中加一行,作用是自动扫描base-package包下的注解:

<context:component-scan base-package="com.stonegeek" />

3、java代码配置

  通过java类定义spring配置元数据,且直接消除xml配置文件

  Spring3.0基于java的配置直接支持下面的注解:

  @Configuration、@Bean、@DependsOn、@Primary、@Lazy、@Import、@ImportResource、@Value

  使用java配置的方式,那么就不需要在类上写注解了,直接在配置类里面进行申明即可:

@Configuration // 通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
public class CDPlayConfig {
    @Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>,默认情况下,bean的ID与带有@bean注解的方法名一样
    public CompactDisc sgtPeppers(){
        return new SgtPeppers();// 直接new对象做演示
    }
  @Bean
    public CDPlayer cdPlayer() {//由于@Bean注解的存在,却是阻止了方法的调用,直接返回该方法创建的实例对象SgtPapers
        return new CDPlayer(sgtPeppers());
    }

  @Bean   public CDPlayer cdPlayer(CompactDisc compactDisc){ //传入一个CompactDisc对象,通过构造器完成注入    return new CDPlayer(compactDisc);   } 

  @Bean
  public CDPlayer cdPlayer(CompactDisc compactDisc){ //setter属性的注入
      CDPlayer cdPlayer=new CDPlayer(compactDisc);
      cdPlayer.setCompactDisc(compactDisc);
      return cdPlayer;
  }}

4、混合配置

  @Import注解,将两个配置类组合在一起,组成一个新的配置类

@Configuration
@Import({CDConfig.class,CDPlayerConfig.class})
public class SoundSystemConfig {
}

  @ImportSource注解,将配置文件和XML共同的加载到Spring文件中

  @Configuration
  @ComponentScan
  @Import(CDConfig.class)
  @ImportResource("classpath:applicationContext.xml")
  public class CDPlayerConfig { 
    @Bean
    public CDPlayer compactDisc(CompactDisc compactDisc){
      return new CDPlayer(compactDisc);
    }
  }

  XML 中引入JavaConfig

  

Bean配置的更多相关文章

  1. 基于注解的bean配置

    基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...

  2. Spring中常用类型的bean配置(Map,List,Set,基本类型)

    给自己做个笔记... 有时会用到配置文件中配置一下映射关系,方便以后扩展.此时可采用集合类型的bean配置方式配置.程序中直接注入即可. map类型的: <!-- 旧版方式,无需util包 -- ...

  3. [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. [原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. Spring Bean配置2

    Spring表达式语言:SpEL •Spring 表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. •语法类似于 EL:SpEL 使用 #{…} 作为定界符,所有在大框 ...

  7. Spring Bean配置

    Spring 是什么 •Spring 为简化企业级应用开发而生. 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. •Spring 是一个 IOC(DI) 和 ...

  8. spring中bean配置和bean注入

    1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean ...

  9. 继承 Bean 配置

    继承 Bean 配置 Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean子 Bean 从父 Bean 中继承配置, ...

  10. Spring 中的 Bean 配置

    内容提要 •IOC & DI 概述 •配置 bean –配置形式:基于 XML 文件的方式:基于注解的方式 –Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & ...

随机推荐

  1. LeetCode之打家劫舍

    1. 问题 在一条直线上,有n个房屋,每个房屋中有数量不等的财宝,有一个盗 贼希望从房屋中盗取财宝,由于房屋中有报警器,如果同时从相邻的两个房屋中盗取财宝就会触发报警器.问在不触发报警器的前提下,最多 ...

  2. 超级详细的git使用指北

    原文地址:https://www.cnblogs.com/wupeixuan/p/11947343.html 1.0  安装和配置 1.1  Git 安装 1.2  Git 配置 2.0  Git 基 ...

  3. Docker配置文件详解

    先来看一份 docker-compose.yml 文件,不用管这是干嘛的,只是有个格式方便后文解说: version: '2' services: web: image: dockercloud/he ...

  4. TThread.Queue和TThread.Synchronize的区别

    TThread.Queue和TThread.Synchronize的区别 效果上:二者的作用都是让业务代码在主线程中执行,差别: Synchronize是阻塞,Queue是非阻塞 代码上 两个方法最终 ...

  5. useReducer代替Redux小案例-1(七)

    使用useContext和useReducer是可以实现类似Redux的效果,并且一些简单的个人项目,完全可以用下面的方案代替Redux,这种做法要比Redux简单一些.因为useContext和us ...

  6. 网格布局 GridLayout

    网格布局,按照行.列组成一个个网格 界面代码: <?xml version="1.0" encoding="utf-8"?> <GridLay ...

  7. 峰回路转的提权08r2服务器

    事前日下这个站的时候说实话,略微的蛋疼.其过程就不写了,就讲讲提权吧.可能图片有点暗.看看我写这篇文章的时候就知道了. 这个学校我好多同学在里面读书,就萌生了.日下这个站的想法. 拿到shell,理所 ...

  8. Linux_CentOS 文件管理和目录管理

    Linux 文件管理 1.创建文件 touch file1 2.删除文件 rm -rf file11 -r:递归的删除目录下面文件以及子目录下文件. -f:强制删除,忽略不存在的文件,从不给出提示 3 ...

  9. openresty开发系列26--openresty中使用redis模块

    openresty开发系列26--openresty中使用redis模块 在一些高并发的场景中,我们常常会用到缓存技术,现在我们常用的分布式缓存redis是最知名的, 操作redis,我们需要引入re ...

  10. ISO/IEC 9899:2011 条款6.5.3——单目操作符

    6.5.3 单目操作符 语法 1.unary-expression: postfix-expression ++  unary-expression --  unary-expression unar ...