Spring初始之HelloWorld

概述

通过各种方式给容器中注册对象
以前是自己new对象,现在交给容器创建;给容器中注册主键组件

框架编写流程

  1. 导包

    下载https://blog.csdn.net/qq_34738667/article/details/79612958
    或使用maven的pom文件获取 方法https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts

    1
    2
    spring-beans-4.0.0.RELEASE.jar、spring-context-4.0.0.RELEASE.jar、spring-core-4.0.0.RELEASE.jar、spring-expression-4.0.0.RELEASE.jar
    Spring 运行时依赖的日志包 commons-logging-1.1.3.jar
  2. 写配置文件

    Spring 配置文件中,集合了spring对的ioc容器管理的所有组件(会员清单)
    创建一个Spring Bean Configuration File(Spring bean配置文件)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
       创建一个Persion类,属性有LastName Name gender email,生成getter/setter方法

    在配置文件中创建一个Person对象,Spring会自动创建Person对象
    一个bean标签创建一个组件
    <!--
    一个bean标签可以注册一个组件(对象、类)
    class 写要注册的组件的全类名
    id 这个对象的唯一标识
    -->
    <bean id="person01" class="xyz.lyhcc.bean.Person">
    <property name="lastName" value="李四"></property>
    <property name="name" value="王五"></property>
    <property name="gender" value="男"></property>
    <property name="email" value="abc@123.com"></property>
    </bean>

    //在JUnit中测试
    //ApplicationContext,代表ioc容器
    //当前应用的xml配置文件在ClassPath下,ClassPathXmlApplicationContext
    ApplicationContext ioc = new ClassPathXmlApplicationContext("ioc.xml");

    Person bean = (Person) ioc.getBean("person01");
    System.out.println(bean);
  3. 测试

总结


注意:

  1. src,源码包开始的路径,称为类路径的开始

    所有源码包里面的东西都会合并放到类路径里面
    Java Wen类开始 /WEB-INF/classes/
    Java /bin/

  2. 导包commons-logging-1.1.3.jar
  3. 先导包在创建配置文件
  4. Spring的容器接管标志了s的类

几个细节

  • ApplicationContext(IOC容器接口)

    new ClassPathXmlApplicationContext(“ioc.xml”); ioc配置文件在类路径下
    new FileSystemXmlApplicationContext(“D://ioc.xml”); ioc容器配置文件在磁盘路径下
  • 给容器中注册一个组件,我们也从容器中按照id拿到了这个组件的对象
    组件的创建工作,是容器完成的
    Person对象是在容器创建完成时就已经完成
  • 同一个组件在ioc容器中是单例的,容器启动时创建完成
  • 容器中如果没有这个组件,报异常NoSuchBeanDefinitionException
  • ioc容器正在创建这个对象的时候,会利用setter方法为javaBean的属性进行赋值
  • JavaBean的属性名由什么决定?getter/setter方法决定的

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×