Spring Day1 初识Spring

一.初识Spring

1.简介

                                        作者:Rod Johnson

  • 得出一个公式:Spring = 春天 = Java程序员的春天 = 简化开发。最后的简化开发正是Spring框架带来的最大好处。

  • Spring是一个轻量级控制器反转loc和面向切面的容器框架

  • 2002,首次推出了Spring框架的前身: interface21框架

  • spring前身是2002年的interface21的一个小框架,其正式第一版诞生于2004年3月24号

  • Spring的理念:解决企业应用开发的复杂性,使现有的技术的更容易使用,整合了现有技术的框架

  • SSH:Stuct2+spring+Hibernate

  • SSM:Spring+spring+Mybatis

Spring官网:Spring Framework

1.2 优点

  • spring是一个开源免费的框架(容器)

  • spring是一个轻量级的()很小,非入侵式的框架(引入了spring不会改变代码的任何情况,反而你用了它更加简单)

    特性:

  • 面向切面编程(aop)

  • 支持事务处理(支持声明式事务),对框架整合的支持

总结:

  1. Spring是一个轻量级控制器反转loc和面向切面的容器框架(aop)

1.3组成

 

1.4扩展

springboot

  • 一个快速开发的脚手架

  • 基于springboot可快速的开发的单个微服务

  • 约定大于配置

spring cloud

  • springcloud 是基于springboot的实现

因为现在大多数公司都在使用springboot 进行快速开发,学习springboot的前提需要完全掌握spring级springmvc 乘上启下的作用

个人认为(唯一的)弊端:发展太久之后 违背的原理的理念 配置十分繁琐 人称"配置地狱"

二.IOC理论推导(是一种思想)

控制反转:是一种编程思想,是一种新型模式,由于出现的比较新,没有纳入bof23种设计模式范围当中去
  • 第一件事:我不在程序员采用编码的方式来new对象了(new 对象我不管了,new对象的权利我交出去了)
  • 第二件事:我不在程序员采用编码的方式来维护对象的关系了(对象之间的维护权我也不管了,交出去了)

Spring框架

  • spring实现了控制反转的loc思想
  • spring可以new一对象
  • spring还可以帮你维护对象和对象之间的关系
  • spring是一个实现了ioc思想的容器

控制反转的实现方式有很多种,其中比较重要的叫做;依赖注入(Dependency Injection 简称DI)

控制反转是思想,依赖注入是这种思想的具体实现方法

依赖注入包含2种方式

  • 第一种:set注入(执行set方法给属性赋值)
  • 第二种:构造方法(执行构造方法给属性赋值)
  • 依赖注入中的“依赖”是什么意思 “注入”又是什么意思
  • 依赖:是A和B对象之间的关系
  • 注入:是一种手段,是让A和B对象产生一种关系
  • 依赖注入:对象A和B对象之间的关系,靠手段来维护,包含set和构造注入

三.Spring的第一个入门程序

当你正式开始学习Spring框架时,一个好的起点是创建一个简单的入门程序。下面是一个是我的一个总结,演示如何使用Spring框架创建和运行第一个程序。

1. 配置开发环境:
   - 安装Java Development Kit (JDK) 和一个适合的IDE,如Eclipse或IntelliJ IDEA。
   - 下载Spring框架,并将其添加到项目的类路径中。

2. 创建一个新的Java项目:
   - 在IDE中创建一个新的Java项目。

 

 

3. 添加所需的依赖项:
   - 在项目的构建文件中(Maven)添加Spring框架的依赖项。
   - 如果你不使用构建工具,则手动将Spring框架的JAR文件添加到项目的类路径中。

    <!--spring的context的依赖-->
       <!-- 当前你引入springcontext依赖之后,表示spring的基础依赖引入了-->
       <!-- 如果,你还想使用spring的jdbc依赖 或者说tx 那么还需要添加依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.9</version>
        </dependency>

        <!--junit依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.2</version>
            <scope>test</scope>
        </dependency>

4. 创建一个Spring配置文件:
   - 在项目中创建一个XML文件,并命名为"spring-confiy.xml"(也可以选择其他名称)。
   - 在该文件中,定义Spring容器和相关的bean。

然后就是通过配置bean标签来完成对象的管理
id:对象名

  • class:对象的模板类(所有交给IOC容器来管理的类必须要有无参构造函数,因为Spring底层是通过反射机制来创建对象,调用的是无参构造)
  • 对象的成员变量通过property标签完成赋值

name:成员变量名

  • value:成员变量值(基本数据类型,String可以直接赋值,如果是其他引用类型不可以通过value赋值)
  • ref:把IOC中的另一个bean赋给当前成员变量(DI)

5. 创建一个简单的Java类:
   - 在项目中创建一个Java类,并给它一个有意义的名称,如"User"。
   - 在该类中,编写一些简单的代码来调用Spring容器并获取bean对象。

 6. 配置Spring容器:
   - 在Spring配置文件中,定义你的bean。
   - 可以使用 `<bean>` 元素来定义bean,指定bean的名称、类型和其他属性。

 7. 运行程序:
   - 在MainApp类中,创建一个新的Spring容器。
   - 使用 `spring-confiy.xml` 类来加载Spring配置文件。
   - 获取所需的bean对象,并调用其方法。

  //第一步获取spring容器
        //ApplicationContext翻译为:应用上下文 其实就是给spring容器
        //ApplicationContext 是一个接口
        //ApplicationContext 接口下有很多实现类 其中有一个实现类叫做ClassPathXmlApplicationContext
        // lApplicationContext
        //ClassPathXmlApplicationContext 专门从类的路径当中加载spring配置文件 的一个spring的上下文
        //ClassPathXmlApplicationContext 实现类可以放多个配置文件哦
        //运行这段代码 只有执行 就相当于启动了spring容器 解析spring xml文件 并实列化所有的bean对象 就到spring容器当中
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-confiy.xml");
        //第二步,根据spring的id获取这个容器
        Object bean = applicationContext.getBean("UserBean");
        System.out.println(bean);
        //通过第二个参数来指定返回的bean的类型
        Userservceimpl userBean = applicationContext.getBean("userBean", Userservceimpl.class);
        userBean.UserTest1();

 //这下面的意思如果在cpan里面FileSystemXmlApplicationContext可以通过FileSystemXmlApplicationContext调取
        //如果这个文件没有在类文件当中可以借助FileSystemXmlApplicationContext来实现
        //ApplicationContext的超级父接口是BeanFactory(翻译为Bean工厂,就是能够生产Bean对象的一个工厂对象)
        //BeanFactory是IOC容器的顶级接口
        //BeanFactory实际使用了:工厂模式
        //Spring的底层是怎么实现的呢 xml解析+工厂+反射机制
        //总结一个点:所有使用BeanFactory也可以实例化对象
        BeanFactory applicationContext1=new FileSystemXmlApplicationContext("D:/160/spring-confiy.xml");
        Userservceimpl userBean1 = applicationContext1.getBean("userBean", Userservceimpl.class);
        userBean1.UserTest1();

8. 测试程序:
   - 运行你的程序,并确保它能够成功调用Spring容器并获取到bean对象。
   - 可以在控制台输出一些信息,以验证程序的正确性。

通过按照上述步骤进行操作,你就可以创建和运行一个简单的Spring入门程序。这将帮助你了解如何使用Spring框架来管理和配置应用程序的组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT77777777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值