创建第一个简单的Spring_IOC-控制反转项目

前言

        记录一下第一次创建Spring项目的辛酸历程,有人喜欢使用eclipse创建,而有人喜欢用IEDA创建,其实两者都有各自的优缺点,所以在穿创建方法上面,两者也会有一定的差别,网上很多教程,大家也可以自行搜索(文章用到的jar包,在我的主页资源那里可以下载)


提示:以下是本篇文章正文内容,下面案例可供参考

目录

文章目录

前言

一、初步了解Spring   

        1、SpringMVC是什么?

        2、SpringIOC是什么?

二、用eclipse创建第一个项目

        1.创建项目

        2. 吃瓜

        3. 开始操作    

        下载完成,解压后的目录如下

        4. 开始代码实现

        5、最后效果:

三、总结


1、SpringMVC是什么?

       1、 Spring MVC是Spring框架中的一个模块,用于开发基于Java的Web应用程序。它提供了一种基于MVC(Model-View-Controller)设计模式的方式来构建Web应用程序。

下面是Spring MVC的详细解析:

  1. 核心组件

    • DispatcherServlet:是Spring MVC的核心控制器,负责拦截所有请求并将其路由到适当的处理程序(Controller)。
    • Controller:处理请求并生成响应的组件。通常是一个Java类,使用注解或配置来标识处理请求的方法。
    • Model:包含应用程序数据的类,通常是一个POJO(Plain Old Java Object)。
    • ViewResolver:用于解析视图名称并将其映射到实际的视图文件。
  2. 请求处理流程

    • 客户端发送请求到DispatcherServlet。
    • DispatcherServlet根据请求的URL查找合适的Controller。
    • Controller处理请求,并调用适当的业务逻辑处理数据。
    • Controller将处理结果存储在Model中,并返回视图名称。
    • DispatcherServlet使用ViewResolver解析视图名称,找到对应的视图文件。
    • 最终将模型数据渲染到视图中,并返回给客户端。
  3. 注解支持

    • Spring MVC提供了丰富的注解来简化开发,如@Controller、@RequestMapping、@RequestParam等。
    • 通过注解,可以将请求映射到特定的处理方法,简化了配置和提高了开发效率。
  4. 数据绑定

    • Spring MVC支持将请求参数自动绑定到Controller方法的参数中,包括基本数据类型、POJO对象等。
    • 还支持数据验证和错误处理,可以通过注解或Validator接口实现数据验证。
  5. 拦截器

    • 拦截器允许在请求处理前后执行自定义逻辑,如权限验证、日志记录等。
    • 可以通过实现HandlerInterceptor接口来创建自定义拦截器。
  • 总的来说,Spring MVC是一个灵活、强大的Web框架,通过其良好的设计模式和丰富的功能,使得开发Web应用变得简单、高效。

2、SpringIOC是什么?

   2、直接理解Spring框架中的控制反转(IoC)比较抽象,让我们 “举个栗子

  •         传统的程序开发中,对象通常需要自己创建和管理它们所依赖的其他对象。这就好像你要做一顿饭,你需要自己去买菜、洗菜、烧菜,所有的事情都要自己亲自动手。但是在Spring框架中,情况有所不同。
  •         Spring框架引入了控制反转(IoC)的概念,就像是有了一个厨师,你只需要告诉厨师你想吃什么菜,厨师会帮你买菜、洗菜、烧菜,最后端上桌。你无需亲自动手,只需告诉厨师你的需求,厨师会帮你完成剩下的工作。
  •         在Spring框架中,你只需要告诉Spring容器你需要哪些对象(bean),以及它们之间的关系,然后Spring容器会帮你创建和管理这些对象,你无需自己操心对象的创建和依赖关系的管理。

        注:以上源于AI解析,想要更加具体了解的话,浏览器可以助你一把


二、用eclipse创建第一个项目

1.创建项目

  •         然后在弹出来的选项框

  • 下面是初始的项目结构

  • 接下来就是在lib文件夹里面添加  Spring Framework 的jar包   下载地址: https://spring.io/

        注:以下是作者踩过的坑,可以吃瓜看一下

2. 吃瓜

https://spring.io/

  1. 然后去Github,高级起来

  1. 直接滑到底,找到这个
  2. 然后找到这个官网的UI链接,摁他
  3. 几年前是这样的界面  jpgx2
  4. 但是今时不同往日,然后又搜索了很多教程,最后发现

         入门spring的小白一看,maven是没学过,直接呵呵送给spring,学过maven的却表示,小脑袋瓜已然有点记不清了。所以我跟着别人的教程,踩了很多坑,人都傻了,

                                                到这里,可以跟着作者操作了!!!                                                 


3. 开始操作

        (1)我们的目的是下载这个 SpringFrameWork ,所以可以点击下面链接,跟着这位博主最后转百度网盘下载:https://blog.csdn.net/D_wang1/article/details/118932189

下载完成,解压后的目录如下

(2)然后在libs文件夹里面,寻找我们本次项目需要用到的 下面红圈的 四个jar包,剩余的另外下载

 注:头两个jar包分别下载,各一个官网链接送给亲爱的你:

① https://dlcdn.apache.org//commons/logging/binaries/commons-logging-1.3.0-bin.zip

② https://dlcdn.apache.org/logging/log4j/1.2.17/log4j-1.2.17.zip

       把上面所有包导进  刚刚创建的项目   的lib文件夹里面,Ctrl C  V你懂的

看见里面有奶瓶,就成功了

(3)在 src下创建一个spring的xml配置文件

  1. 官方建议这个配置文件的名称为: applicationContext.xml 。
  2. 但实际我们可以随意命名    比如:Bean.xml
  3. 然后在里面写代码,IDEA里面创建applicationContext.xml是自带的这段代码:

其实,这段代码可以在以下路径找到

1、打开前面百度网盘下载的 文件,按照路径,双击这个html文件

  • 第一段代码便是我们想要的东西,绿色标记的代码段可以去掉

也就是

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">

	<!-- bean definitions here -->

</beans>

(4)然后将这个代码放到  applicationContext.xml   里面

        1、在src文件夹下创建包

        2、第一次写spring,不管辣么多,先随便命名吧

4. 开始代码实现

(1)创建一个类,相当一个bean

Person.java:

public class Person {
        private String name;
        private int age;

        public Person() {
       
        }

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        public String getName() {
            return name;
        }

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

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
  • 写到这里,不由自禁地想起IEDA的三件套快捷键,不了解eclipse快捷键,对他甚是想念


(2)对 spring配置文件配置bean信息(Person)
applicationContext.xml:

<bean id="person" class="example.Person">
		<property name="name" value="CXK"></property>
		<property name="age" value="24"></property>
	</bean>

如图:


<bean id="person" class="example.Person"> :意为创建一个bean,与Person类绑定        (example为package名),这个bean的 id 为 person
<property name="name" value="CXK"></property> :意为给bean的name变量赋值,值为“坤哥”

(3)测试代码:

TextIoc.java:

1、代码下面爆红的话,说明没导包,鼠标停留在上面一会儿,import即可,不爆红那就继续


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class TextIoc {
	@Test
	public void textUser()
	{
		//1.获取spring配置文件
		 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		 //2.由配置文件返回对象
		 Person p = (Person)context.getBean("person");
		 System.out.println(p);
		 p.info();
	}
}

 Person p = (Person)context.getBean("person"); :此处的 person 要和 applicationContext.xml 中的 </bean>的 id 相同。即person 是要在applicationContext.xml 取对象的 bean的名字。

注:你的p.info()爆红???不是叭 不是叭,行叭,做到这里你也是累趴了,就让本作者就拯救一下你吧

2、写好之后Ctrl+S保存一下

      3、控制台发生警告“context is never closed ” ,意思是资源打开了并没有关闭,那么我们稍微改一下代码:

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TextIoc {
    @Test
    public void textUser() {
        //1.获取spring配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        try {
            //2.由配置文件返回对象
            Person p = (Person)context.getBean("person");
            System.out.println(p);
            p.info();
        } finally {
            ((ClassPathXmlApplicationContext) context).close();
        }
    }
}
  • 保存之后,右键TextIoc.java 工作区随意位置位置

spring,启动!!!

5、最后效果:

  • 打印返回的对象 p         调用 p 的info()方法

6. 完结,撒花!!!       

  • 注:当然,如果你想将下面这个打印出来的话

  • 只需要


三、总结

        正所谓万事开头难,作者在查阅文章的时候,用IEDA实现(主maven的有),用eclipse实现(到处找SpringFrameWork的jar包的也有),既看见简单的,亦看见复杂的;因为淋过雨,所以想为别人撑伞,当我们了解了spring,就不会觉得它难,框架存在的意义,本就是为了方便程序员更快的完成开发,让我们领悟,什么叫做 "效率",一起加油吧,程序猿们!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星星湘曦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值