• 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;    
    
    }


  • 相关阅读:
    2020.10.08 模拟赛 题解
    可爱路径 题解
    飞行路线 题解2
    架设电话线 题解
    浅谈 LCA
    浅谈 Tarjan 算法之强连通分量(危
    初赛题目整理1
    【求助,待续!】holes
    【题解】HDU4467
    【题解】zhx154嬲
  • 原文地址:https://www.cnblogs.com/uip001/p/10565841.html
Copyright © 2020-2023  润新知