第一个HelloWorld程序

1.创建maven工程
2.删除src子模块, 重新新建方便管理
3.导入spring Jar包配置

  1. <dependency>
  2. <groupId>org.springframework</groupId>
  3. <artifactId>spring-webmvc</artifactId>
  4. <version>5.1.10.RELEASE</version>
  5. </dependency>

image.png

4.编写一个Hello实例类

package com.yuanzi.pojo;

public class Hello {
    private String name;

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

    public String getName() {
        return name;
    }

    public void show(){
        System.out.println("Hello World" + name);
    }
}

5.编写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就是java对象 , 由Spring创建和管理-->
    <bean id="hello" class="com.yuanzi.pojo.Hello">
        <property name="name" value="Spring"/>
    </bean>

</beans>

6.进行测试, 编写test类

@Test
public void test(){
   //解析beans.xml文件 , 生成管理相应的Bean对象
   ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
   //getBean : 参数即为spring配置文件中bean的id .
   Hello hello = (Hello) context.getBean("hello");
   hello.show();
}

7.运行程序
image.png


IOC创建对象方式

IOC创建对象方式有 无参构造方法 和有参构造方法, 有参时有三种不同的方式赋值

1、User.java

package com.yuanzi.pojo;

public class User {
    private String name;

    public User() {
        System.out.println("无参构造方法");
    }

    public User(String name) {
        this.name = name;
        System.out.println("有参构造方法");
    }

    public String getName() {
        return name;
    }

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

    public void show() {
        System.out.println("name = " + name);
    }
}

2、beans.xml

<!--    &lt;!&ndash;走无参数构造方法&ndash;&gt;-->
<!--    <bean id="user" class="com.yuanzi.pojo.User">-->
<!--        <property name="name" value="原子"/>-->
<!--    </bean>-->

<!--    &lt;!&ndash; 第一种根据index参数下标设置 &ndash;&gt;-->
<!--    <bean id="user" class="com.yuanzi.pojo.User">-->
<!--        &lt;!&ndash; index指构造方法 , 下标从0开始 &ndash;&gt;-->
<!--        <constructor-arg index="0" value="yuanzi1"/>-->
<!--    </bean>-->


    <!-- 第二种根据参数名字设置 -->
    <bean id="user" class="com.yuanzi.pojo.User">
        <!-- name指参数名 -->
        <constructor-arg name="name" value="yuanzi2"/>
    </bean>

<!--    &lt;!&ndash; 第三种根据参数类型设置 &ndash;&gt;-->
<!--    <bean id="user" class="com.yuanzi.pojo.User">-->
<!--        <constructor-arg type="java.lang.String" value="yuanzi3"/>-->
<!--    </bean>-->

3.测试
image.png

在配置文件加载的时候。其中管理的对象都已经初始化了!


Spring配置

别名
alias 设置别名 , 为bean设置别名 , 可以设置多个别名

<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>

Bean的配置

<!--bean就是java对象,由Spring创建和管理-->

<!--
   id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符
   如果配置id,又配置了name,那么name是别名
   name可以设置多个别名,可以用逗号,分号,空格隔开
   如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;

class是bean的全限定名=包名+类名
-->
<bean id="hello" name="hello2 h2,h3;h4" class="com.yuanzi.pojo.Hello">
   <property name="name" value="Spring"/>
</bean>

import
团队的合作通过import来实现 .

<import resource="{path}/beans.xml"/>