Spring获取JavaBean的xml形式和注解形式

Spring获取JavaBean的xml形式和注解形式

文章目录

  • 一、用xml文件方式管理JavaBean
    • 1. 创建一个xml配置文件
    • 2. 将一个Bean交由spring创建并管理
    • 3. 获取Spring上下文,获取bean
  • 二、用注解获取Javabean
    • 1. 创建一个class配置java文件
    • 2. 将一个bean交由Spring创建并管理
    • 3. 获取Spring上下文,后去Javabean
    • 总结:都是初始化Spring上下文获取Javabean
  • 三、获取Javabean对比
  • 四、简化注解获取Javabean
    • 1.在javabean类上添加@Component注解
    • 2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean
    • 3. 初始化Spring上下文,获取bean就可以了

一、用xml文件方式管理JavaBean

1. 创建一个xml配置文件

2. 将一个Bean交由spring创建并管理




       
        

注:用id作为bean的唯一标识 用class来指定这个bean是哪个类

3. 获取Spring上下文,获取bean

 ApplicationContext context =
                new ClassPathXmlApplicationContext("applicationContext.xml");

获取bean

 JavaBean javaBean = context.getBean("javaBean",JavaBean.class);

二、用注解获取Javabean

1. 创建一个class配置java文件

2. 将一个bean交由Spring创建并管理

//1 .创建一个class配置java文件
@Configuration
public class Configuation {

    //2. 将一个bean交由Spring创建并管理
    @Bean(value = "bean2")
    public JavaBean javaBean(){
        return new JavaBean();
    }
}

3. 获取Spring上下文,后去Javabean

 //3. 获取Spring上下文
        ApplicationContext context =
                new AnnotationConfigApplicationContext(Configuation.class);

        //获取 Bean
        JavaBean javaBean = context.getBean("javaBean",JavaBean.class);
        System.out.println("javaBean"+javaBean);

总结:都是初始化Spring上下文获取Javabean

三、获取Javabean对比

Spring获取JavaBean的xml形式和注解形式_第1张图片

Spring获取JavaBean的xml形式和注解形式_第2张图片

上面只是由xml形式获取Javabean变成了注解形式,但是,代码量没有减少,那如何简化呢?

四、简化注解获取Javabean

1.在javabean类上添加@Component注解

@Component
public class JavaBean { }

2. 在配置java类上添加@ComponentScan注解,value 属性设置Spring扫描那些bean

//创建一个class配置java文件
@Configuration
@ComponentScan(value = "com.gblfy.ioc")
public class Configuation { }

3. 初始化Spring上下文,获取bean就可以了

//获取Spring上下文
        ApplicationContext context =
                new AnnotationConfigApplicationContext(Configuation.class);

        //huoqu Bean
        JavaBean javaBean = context.getBean("javaBean",JavaBean.class);
        System.out.println("javaBean"+javaBean);

原理:通过@ComponentScan注解来告知Spring,让Spring扫描这个包结构下的所有class

那么扫描的原则是什么呢?

扫描原则:在刚才包结构下类上有@Component注解的class,这些class将交由Spring来管理,并由Spring来为我们实例化这些class的Javabean。

Javabean的id默认为类名小写,如果,想自定义bean的id在@Component的value 属性中添加value即可;

@Component(value = "javaBeanId")
public class JavaBean { }

Spring获取JavaBean的xml形式和注解形式_第3张图片
Spring获取JavaBean的xml形式和注解形式_第4张图片
Spring获取JavaBean的xml形式和注解形式_第5张图片

配置包扫描,在类上添加注解,就可以交由Spring来管理,并进行实例化
注解:

注解位置 注解名称
controller层 @Controller
service层 @Service
持久层 @Repository
其它层 @Component

依赖附上


        
            org.springframework
            spring-core
            5.1.8.RELEASE
        
        
            org.springframework
            spring-context
            5.1.8.RELEASE
        
        
            junit
            junit
            4.11
            test
        
    

你可能感兴趣的:(Spring获取JavaBean的xml形式和注解形式)