spring学习1-第一个spring项目

1. 创建一个maven项目(不勾选骨架),导入依赖,删除src目录,以此作为父项目。

依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--lombook插件,免写pojo类的getter,setter等-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
    </dependencies>

spring-webmvc是一个很大的包,它会帮我们顺便导入其它诸如beans,aop,context等核心包

2.  在父项目下创建一个module

 3.创建user类

import lombok.Data;
@Data//getter,setter,toString
public class User {
    private int id;
    private String name;
    private String password;
}

4.创建核心配置文件applicationContext.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 class="com.cong.pojo.User" id="user">
        <property name="id" value="1"/>
        <property name="password" value="123456"/>
        <property name="name" value="cong"/>
    </bean>
</beans>

5.测试类

public class TestIOC {
    @Test
    public void test1() {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//获取上下文对象
        User user = context.getBean("user",User.class);
        System.out.println(user);
    }
}

结果

 那么,这么怎么得到这个结果的呢?先思考两个个问题

1. user对象是谁创建的?
user对象是由Spring创建的
2. user对象的属性是怎么设置的?
user对象的属性是由Spring容器设置的


这个过程就叫控制反转:
控制:谁来控制对象的创建,

传统应用程序的对象是由程序本身控制创建的,比如User user = new User()

使用Spring后,对象是由Spring来创建的,比如User user1 = context.getBean("user",User.class); 

反转:程序本身不创建对象,而变成被动的接收对象.
依赖注入:就是利用set方法来进行注入的.

大概可以等价如下

 平常我们需要一个对象,都是通过new的方式,现在把这些工作全部交给spring管理了。

IOC是一种编程思想,由主动的编程变成被动的接收.
可以通过newClassPathXmlApplicationContext去浏览一下底层源码 .
OK,到了现在,我们彻底不用再程序中去改动了,要实现不同的操作,只需要在xmI配置文件中进行修改,

所谓的IOC,一句话搞定:对象由Spring来创建,管理,装配!

项目结构

爱生活,爱码字

我是匆匆、我曾喂自己半年酒。

好好生活吧,有缘或许相见。

原文地址:https://www.cnblogs.com/ccoonngg/p/11217149.html