2、组件注册-@Configuration&@Bean给容器中注册组件

2、组件注册-@Configuration&@Bean给容器中注册组件

2.1 创建maven项目 spring-annotation

pom.xml文件添加 spring-context 依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>

2.2 xml方式 注册Bean

2.2.1 新建 Pension.java 实体类,并创建getter、setter、无参、全参、tostring()方法等
package com.hw.springannotation.beans;

/**
 * @Description TODO
 * @Author hw
 * @Date 2018/11/27 17:21
 * @Version 1.0
 */
public class Pension {

    private String name;
    private Integer age;

    public Pension() {
    }

    public Pension(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Pension{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
2.2.2 resource目录下新建 beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="persion" class="com.hw.springannotation.beans.Persion">
        <property name="name" value="hw"></property>
        <property name="age" value="18"></property>
    </bean>
</beans>
2.2.3 创建MainTest 测试类,运行,打印pension信息。
public class MainTest {
    public static void main(String[] args) {
        /**
         * 配置文件的方式
         */
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
        Pension pension = (Pension) applicationContext.getBean("pension");
        System.out.println(pension);
    }
}

2.3 注解方式注册组件

2.3.1 添加MainConfig.class 配置类,如下:
package com.hw.springannotation.config;

import com.hw.springannotation.beans.Pension;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description 配置类=配置文件
 * @Author hw
 * @Date 2018/11/27 17:29
 * @Version 1.0
 */
@Configuration  // 告诉spring 这是一个配置类
public class MainConfig {

    @Bean(value = "pension01")   // 给容器中注册一个 Bean ;类型为返回值类型,id默认为方法名,
    public Pension pension() {
        return new Pension("hongwei", 24);
    }
}
2.3.2 创建test测试类,运行
package com.hw.springannotation.test;

import com.hw.springannotation.beans.Pension;
import com.hw.springannotation.config.MainConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @Description TODO
 * @Author hw
 * @Date 2018/11/27 17:26
 * @Version 1.0
 */
public class MainTest {
    public static void main(String[] args) {

        /**
         * 注解方式
         */
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
        Pension pension = applicationContext.getBean(Pension.class);
        System.out.println(pension);

        String[] beanNamesForType = applicationContext.getBeanNamesForType(Pension.class);
        for (String s : beanNamesForType) {
            System.out.println(s);
        }


    }
}

2.4 完整源码

Spring-Annotation

猜你喜欢

转载自www.cnblogs.com/Grand-Jon/p/10018640.html
今日推荐