栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring入门(二)——作为容器容纳Bean

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring入门(二)——作为容器容纳Bean

目录

Spring作为容器

Bean的生命周期

 ​

装配Bean的三种方式

在XML中进行显式配置

在Java中进行显式配置

隐式的bean发现机制和自动装配


Spring作为容器

        为什么我们普遍把spring称作为容器,因为Spring负责创建装载我们应用中的对象,并且配置管理这些对象的生命周期。

        容器是Spring框架的核心。Spring容器使用DI管理构成应用的组件, 它会创建相互协作的组件之间的关联。毫无疑问,这些对象更简单干 净,更易于理解,更易于重用并且更易于进行单元测试。

        Spring容器并不是只有一个。Spring自带了多个容器实现,可以归为 两种不同的类型。bean工厂(由org.springframework. beans. factory.eanFactory接口定义)是最简单的容器,提供基本的DI 支持。应用上下文 (由org.springframework.context.ApplicationContext 接口定义)基于BeanFactory构建,并提供应用框架级别的服务。

        但是我们肯定是要把精力放在应用上下文使用上。

 

Bean的生命周期

        在传统Java应用中,我们Bean的生命周期就是,new对Bean实例化,然后调用它,一旦Bean不再被使用,Bean的生命周期就结束了。

        在Spring容器中,

 

 

装配Bean的三种方式

首先咱们得创建一个Spring工程。这里我用的是maven导入的包。

   
        
            org.springframework
            spring-core
            4.3.7.RELEASE
        
        
            org.springframework
            spring-beans
            4.3.7.RELEASE
        
        
            org.springframework
            spring-context
            4.3.7.RELEASE
        
        
            org.springframework
            spring-test
            4.3.7.RELEASE
        
    
  • 在XML中进行显式配置
  • 在Java中进行显式配置
  • 隐式的bean发现机制和自动装配

在XML中进行显式配置

对于刚学Spring的同学,这个方式是最先接触的,所以把它放在第一个给大家回忆回忆。

1.首先,我们随便搞个类

这个注解是我为了不让代码看起来太多,引入的Lombok里的注解,随意了。

@Data
public class Person {
    private String name;
    private int age;
}

2.然后在xml声明一个简单的bean




    
    

xml有个模板,我们主要关注的就是,这个是我们要会写的。不会的可以简单的查一下,这里先讲个大概。

3.接下来就要去把它交给Spring管理了

public class AppMain {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("web.xml");
        Person bean = context.getBean("person", Person.class);//已经交给Spring管理了
        System.out.println(bean);
    }
}

运行之后你就会惊奇的发现~~~~~运行结果是

Person{name='小明', age=18}

已经成功。

在Java中进行显式配置

这个需要注解@Configuration和@Bean配合使用,是这个样子的

@Configuration
public class PersonConfig {
    @Bean
    public Person getPerson(){
        return new Person("小李",20);
    }
}

这个时候,我们就有了这个Bean。

这个@Configuration其实相当于上边xml文件模板,等价于




然后@Bean大家类比着xml文档里的就可以了

接下来就是用这种方法实现装载了,代码如下

public class AppMain {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(PersonConfig.class);
        Person bean = context.getBean("getPerson", Person.class);
        System.out.println(bean);
    }
}

至此,上边两种方式都已经成功。

隐式的bean发现机制和自动装配

这个实现方法就要@Component和@Autowired搭配使用,过程如下。

@Component
public class AutoStule {
    void play(){
        System.out.println("打电动");
    }
}
//创建一个可被发现的bean

Spring中这个注解需要手动添加扫描配置才能被扫描到。如下



    

或者用注解式扫描

@Configuration
@ComponentScan //要求这个类和bean一个包下,否则componentScan后边要跟扫描的路径
public class AutoConfig {
}

最后使用

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AutoConfig.class)
public class AppMain {
    @Autowired
    private AutoStule autoStule;
    @Test
    public void doSomething(){
        autoStule.play();
    }
}

 

这篇文章看完你应该知道的知识

  • spring的主要作用
  • spring装配bean的方法
  • spring如何装配bean

okok终于写完了,今天就到这里。明天聚餐,断更。。。。。。。。。。。。。有错误请在评论区指出,共同学习。依然要说明,这是读《spring实战第四版》后觉得对我重要的知识,大家仅供参考。再见!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434888.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号