初始Spring框架

初识Spring

spring介绍

核心理念:IoC(控制反转)、AOP(面向切面的编程)

  1. 表现层:web层提供了一个优秀的springMVC框架
  2. 业务逻辑层:通过AOP无入侵情况下对业务层进行增强,eg 管理事务、记录日志。
  3. DAO层(持久层):整合MYBatis

Spring框架的优点

  1. 可以直接通过Spring文件配置文件管理数据库事务。
  2. 方便测试,支持junit单元测试
  3. 方便集成其他框架(AOP),eg Struts、Hibernate
  4. 降低了JavaEE的API使用难度

Spring体系结构

  1. Bean:对象的管理和创建。
  2. Core:基础核心。
  3. Context:上下文。
  4. SpEL:Spring提供的表达式。

从下往上学,学习灰色部分

Spring新特性

  1. 简化了异常操作。
  2. 支持响应式编程
  3. 支持函数式web框架
  4. 支持Kotlin语言
  5. 提升测试功能

Spring的下载及目录结构

  1. spring-5.2.8.RELEASE-dist.zip

Spring入门程序

  1. 创建一个maven工程,在其中引入相关的依赖包(课本)
  2. 创建一个类,在目录src/main/java下创建包,eg package com.ncwu
  3. 在包下创建HelloSpring类,类下要声明属性以及属性对应的set方法
package com.ncwu;
public class HelloSpring{
    private String userName;
    public void setUserName (String userName)
    {
        this.userName=userName;
    }
    
}
  1. 目录src/main/resources下创建applicationContext.xml作为HelloSpringl类的配置文件,并在配置文件里创建Bean(对象)
<bean id="hellospring" class="com.ncwu.HelloSpring">

​ id是唯一标识,class指向com.ncwu.HelloSpring

​ spring帮助创建类的对象,唯一标识

<property name="userName" value="张">
    </property>

​ 为userName赋值iii

  1. Spring帮助文档获取约束信息(用AI更快,idea有模板)
  • 第一步:pom.xml里相关的依赖,引入一个依靠maven以来传递引出所有的。
  • 第二步:创建类,提供属性以及属性的set方法
  • 第三步:编写Spring的核心配置,头部信息复制,配置Bean
  • 第四步:在测试类里进行单元测试

Spring的控制反转和依赖注入(IoC)

控制反转(Inversion of Controi):是面向对象编程中的一个设计原则,用来降低程序代码之间的耦合度。在传统的面向对象的编程里,获取对象的方式是用new关键字主动创建一个对象,也就是应用程序掌握着对象的控制权

Ioc控制反转机制指的是对象由IoC容器统一管理,当程序需要使用对象时,可以直接从容器中获取,这样对象的控制权就从应用程序转移到了IoC容器。

依赖注入(Dependency Inject)

依赖注入就是有IoC容器在运行期间动态的将某种以来注入到对象中,例如将对象B注入(赋值)给对象A的成员变量。依赖注入的基本思想时明确定义组件接口,独立开发各个组件,然后根据组件依赖关系组装运行。

​ **依赖注入和控制反转从不同角度描述了同一件事。依赖注入是从应用程序角度描述,即应用程序依赖IoC容器创建并注入他所需的外部资源;而控制反转是从IoC容器角度描述,即IoC容器控制应用程序,由IoC反向的向应用程序注入应用程序所需要的外部资源(可以是外部实例对象也可以是外部文件对象) **

//获取Spring容器
ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
//从容器中获取对象
HelloSpring helloSSpring =(HelloSpring)ac.getBean("helloSpring");
//调用对象的方法
helloSpring.show();

依赖注入的类型

实现方法

​ 依赖注入的作用就是在使用Spring框架创建对象时动态的把其多以来的对象注入到Bean组件中,依赖注入通常有两种方法:构造方法注入,属性setter方法注入

构造方法注入

Spring读取配置信息后,或通过反射方式调用实例的构造f方法,如果是有参的构造方法可以在构造方法里传入所需的参数值,最后创建类对象并赋值

<bean id="user1" class="com.ncwu.User1">
    <construcror-arg name="id" value="1">//arg表示参数
    </constructor-arg>
      <construcror-arg name="name" value="王五">
    </constructor-arg>  
    <construcror-arg name="password" value="1234">
    </constructor-arg>

一个元素标识构造方法的一个参数,且定义不区分顺序,只需要通过元素的name属性指定参数即可。元素还提供了types属性类指定参数的类型,避免字符串和基本数据类型混淆

ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext-User.xml");
//加载applicationContext.xml配置
User1 user1=applicationContext.getBean("user1","User1.class");
//获取配置中的User1实例

确定参数

name属性:通过参数的名字来确定参数

type属性:通过参数的类型来确定参数

index属性:通过参数的索引来确定参数

给属性赋值的

value:用来给基本类型赋值

ref:用来给引用型类型赋值

setter方法

<bean id ="user2" class="com.ncwu.User2">
posted @ 2025-11-26 15:33  甜面包蘸酷可乐  阅读(0)  评论(0)    收藏  举报