zoukankan      html  css  js  c++  java
  • Spring框架(一) 创建bean

    一、使用Spring创建Bean

      1.使用xml配置创建

         1.1创建声明了xsd的xml配置文件

        1.2使用bean标签声明一个bean,使用id属性声明bean的名称,使用class属性声明bean的路径

        1.3使用property注入属性,使用name声明属性的名称,使用ref声明属性的bean,使用value声明属性值,可以是list,set,string,bean等

             或使用constructor-arg从构造器注入参数 ,可以是list,set,string,bean等

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    
        <!-- 配置Bean,默认id是com.zoo.animals.Duck#0 -->
        <bean id="blackDuck"   class="com.zoo.animals.Duck">
            <property name="food" value="water" />
         <property name="action" ref="duckActionBean" />
    
    
       </bean>
      <bean id="pool"     class="com.zoo.places.Pool">
            <constructor-arg   value="stone" />
         <constructor-arg>
          <list>
            <value>5m</value>
            <value>6m</value>
          </list>
            </constructor-arg>
        </bean>
     
    </beans>    

     2.使用java配置创建

         2.1使用@Configuration注解在类上标明这是一个配置类

        2.2在配置类中写一个返回bean对象方法,并使用@Bean注解标明,方法名就是Bean名,也可以使用name属性命名

        2.3在方法中完成依赖注入

    @Configuration
    public class SpringBeanConfig{
        @Bean(name="blackDuck")
        public Animal duck(){
          return new Duck()
        }
        @Bean
        public Place pool(){
          return new Pool(duck())
        }
    
        @Bean
        public Place pool(Animal ani){
          return new Pool(ani)
        }
    }

      3.使用注解创建

        3.1启动注解扫描

          <1>在xml配置中使用如下配置启动,base-package为扫描的包路径   

              <!-- 启动自动扫描 -->
              <context:component-scan base-package="com.zoo.*" />

          <2>在java配置类中使用@ComponentScan注解在类上启动,使用basePackages声明扫描路径,使用{“a”,“b”}方式声明多个路径

        3.2使用@Component注解声明bean

        3.3使用@Autowired注解声明注入,可以声明在属性上或任何方法上,使用required=false声明不是必须装配的

            
    @Component("blackDuck")
    public class Duck{
    
    }
    
    
    public class Pool{
      @Autowired(required=false)
      private Duck duck;    
    
    }


  • 相关阅读:
    四则运算
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 K-近邻算法及应用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    ATM管理系统
    流程图与活动图的区别与联系
    四则运算自动生成程序
  • 原文地址:https://www.cnblogs.com/uip001/p/10565841.html
Copyright © 2011-2022 走看看