Spring的学习笔记以及Spring的入门案例

第一章 Spring框架概述

1.1 两大核心:

  • IOC(控制翻转)也叫DI(依赖注入)
  • AOP(面向切面编程):就是可以给业务方法增加功能,而且不用修改源代码。

使用编程环境(IDE):Idea(也可以选择Eclipse,但是不建议)超级好用,谁用谁知道 。

1.2 SpringIOC:

IOC(控制反转)也可以称之为DI(依赖注入):

  • **控制反转:**将 创建对象、属性值的方式 进行了翻转。从new一个对象、xxx.setXXX()设置属性翻转为了从springIOC容器 getBean()获取对象。
  • **DI(依赖注入):**只需要在程序中提供要使用的对象名称就可以了,至于对象如何在容器中创建赋值,查找都是由容器内部实现的。

**注:**spring是使用的di实现了ioc的功能,spring底层创建对象是使用反射机制。

第二章 IOC控制反转


实现步骤:
    1、创建maven项目
    2、加入maven依赖
        spring的依赖,
        junit依赖
    3、创建类(接口和他的实现类)
        和普通java程序一样
    4、创建spring需要使用的配置文件
        声明类的信息,这些类由spring创建和管理
    5、测试spring创建的对象。

IDEA中使用spring框架的步骤

1、创建maven工程

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:
maven工程构建失败的话,有可能是没有更改下载源,maven默认的下载源是国外的,因为国内是访问不到外网的,
所以需要更改一下下载源,建议换成阿里云镜像,这是国内大多数人都在用的,如何换,请自行百度。
创建成功:

这就是工程的目录结构

在这里插入图片描述

2、加入maven依赖(pom.xml)


添加位置是在pom.xml文件中的

<dependencies>
    ....... <!--这里面加入依赖-->
</dependencies>

2.1、spring的依赖
   <!--    spring Context包 这里也间接加入了spring-aop了-->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.2.10.RELEASE</version>
</dependency>
2.2、junit依赖
<!--    单元测试类-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

3、创建类(实体类、接口和他的实现类)

实体类 Student:
package com.lg.beans;

public class Student {
    private String name;
    private Integer age;
    private String sex;

    public Student() {

    }

    public Student(String name, Integer age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}
接口 SomeService
package com.lg.service;

public interface SomeService {
    void doSome();
}
实现类 SomeServiceImpl
package com.lg.service.impl;

import com.lg.service.SomeService;

public class SomeServiceImpl implements SomeService {
    @Override
    public void doSome() {
        System.out.println("hello Spring!!!!");
    }
}

4、创建spring需要使用的配置文件

4.1 如果 mian文件下没有resources文件的得自己创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果没有这个标识可以自己手动标记
在这里插入图片描述

4.2 创建spring的配置文件

在resources目录下创建配置文件:applicationContext.xml(名字可以自定义,建议使用这个名字命名)


在这里插入图片描述
在这里插入图片描述
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">
<!--
    spring配置文件
    1、beans:是根标签 ,spring把java对象变成bean。
    2.spring-beans.xsd 是约束文件,和mybatis中的 dtd是一样的
-->

</beans>

5、创建对象


在spring容器中创建对象

  • 使用bean标签,来声明对象

    • bean标签

      • <bean id="" class="">
        <!--这里面可以给对象的属性 赋值-->    
        </bean>
        
      • <bean id="" class="" />
        <!--这种写法就不可以给属性赋值-->    
        
  • 属性

    • id: 对象的自定义名称,唯一值,spring是通过这个来找到对象的
    • class: 类的全限定名称,也就是你要创建的对象的类型,(不能是接口,因为spring是使用的反射机制创建的
      对象,必须使用类,而且在java中接口是不能创建对象的。
  • 这个例子中还没涉及到如何给类的属性赋值。

  • 这样,spring就简单的完成了对象的创建。spring是吧创建好的对象放入到map对象中,

    spring框架中有一个map对象一个bean标签声明一个对象


<?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">
<!--
    spring配置文件
    1、beans:是根标签 ,spring把java对象变成bean。
    2.spring-beans.xsd 是约束文件,和mybatis中的 dtd是一样的
-->
    
<!--    SomeServiceImpl对象-->
    <bean id="someService" class="com.lg.service.impl.SomeServiceImpl">

    </bean>
<!--    还有一种格式:
    <bean id="someService" class="com.lg.service.impl.SomeServiceImpl" />
-->
<!--    学生类对象-->
    <bean id="myStudent" class="com.lg.beans.Student">
    </bean>
</beans>

6、测试spring创建的对象。

示例程序:
public void testSpring()
    {
        //配置文件名称
        String config = "applicationContext.xml";  //spring的配置文件名称

        //创建spring容器 并传入spring的路径
        //ClassPathXmlApplicationContext 表示从类路径中加载spring的配置文件
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);
        //从容器中拿出对象  通过配置文件中的bean标签中的id值来获取对象
        Student s = (Student) ac.getBean("myStudent");
        System.out.println(s);

        SomeService someService = (SomeService) ac.getBean("someService");
       	someService.doSome();

    }
运行结果:

在这里插入图片描述

7、Spring创建对象的时间

//在创建spring的容器时会创建配置文件的所有对象。
//创建spring容器
// s 是指配置文件路径
        ApplicationContext ac = new ClassPathXmlApplicationContext(s);

8、总结:

1、构建好工程项目,使用maven工程直接导依赖(jar)。没有maven工程的自己手动导包。
2、创建好spring容器,通过容器来获取想要的对象。就可以正常的编写代码了。
关于spring:
	在创建spring的容器时会创建配置文件的所有对象。
	spring创建对象默认会调用无参构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值