Spring框架入门之HelloWorld

2023-11-16

一、什么是框架?

       框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。框架是对特定应用领域中的应用系统的部分设计和实现的整体结构。

       因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

二、什么是Spring框架?

  1. Spring是一个开源框架    
  2. Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
  3. Spring是一个IOC(DI)和AOP容器框架。
  4. Spring的优良特性

 ①   非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API

 ②   依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。

 ③   面向切面编程:Aspect Oriented Programming——AOP

 ④   容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期

 ⑤   组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。

       ⑥  一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。

三、搭建Spring运行时环境

1.  加入JAR包

① Spring自身JAR包:spring-framework-4.0.0.RELEASE\libs目录下

           spring-beans-4.0.0.RELEASE.jar

           spring-context-4.0.0.RELE2ASE.jar

           spring-core-4.0.0.RELEASE.jar

           spring-expression-4.0.0.RELEASE.jar

② commons-logging-1.1.1.jar

2.  在Spring Tool Suite工具中通过如下步骤创建Spring的配置文件

① File->New->Spring Bean Configuration File                     只有在Java模式下编译器才能创建

② 为文件取名字 例如:applicationContext.xml

四、写Helloworld

1、创建Student类

2、创建Spring 配置文件

<?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元素定义一个由IOC容器创建的对象 -->
	<!-- class属性指定用于创建bean的全类名 -->
	<!-- id属性指定用于引用bean实例的标识 -->
	<bean id="personOne"  class="com.atguigu.spring.mod.Person">
		<!-- 使用property子元素为bean的属性赋值 -->
		<property name="id" value="00111"></property>
		<property name="name" value="小明"></property>
	
	</bean>
</beans>

3、测试:通过Spring的IOC容器创建Student类实例

​​​​//1.创建IOC容器对象
ApplicationContext iocContainer = 
		new ClassPathXmlApplicationContext("helloworld.xml");
//2.根据id值获取bean实例对象
Student student = (Student) iocContainer.getBean("student");
//3.打印bean
System.out.println(student);

4、结果(通过Spring即可给类进行创建并赋值)

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring框架入门之HelloWorld 的相关文章

  • org.apache.sling.api.resource,version=[2.3,3) -- 无法解析

    您好 我无法访问我的项目内容 我已经上传了从 CQ 访问内容所需的所有包 我唯一能看到的是 org apache sling api resource version 2 3 3 无法解析 这是否是异常的原因 如果是 请告诉我如何解决 中Q
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 我可以使用子接口重新编译公共 API 并保持二进制兼容性吗?

    我有一个公共 API 在多个项目中多次使用 public interface Process
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • hibernate锁等待超时超时;

    我正在使用 Hibernate 尝试模拟对数据库中同一行的 2 个并发更新 编辑 我将 em1 getTransaction commit 移至 em1 flush 之后我没有收到任何 StaleObjectException 两个事务已成
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 在 Spring 中重构这个的最佳方法?

    private final ExecutorService executorParsers Executors newFixedThreadPool 10 public void parse List
  • java.lang.NumberFormatException: Invalid int: "3546504756",这个错误是什么意思?

    我正在创建一个 Android 应用程序 并且正在从文本文件中读取一些坐标 我在用着Integer parseInt xCoordinateStringFromFile 将 X 坐标转换为整数 Y 坐标的转换方法相同 当我运行该应用程序时
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • 具有特定参数的 Spring AOP 切入点

    我需要创建一个我觉得很难描述的方面 所以让我指出一下想法 com x y 包 或任何子包 中的任何方法 一个方法参数是接口 javax portlet PortletRequest 的实现 该方法中可能有更多参数 它们可以是任何顺序 我需要
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • hashcode 的默认实现为以相同方式构造的对象返回不同的值

    我在这里编写一个示例代码 public class Test private int i private int j public Test TODO Auto generated constructor stub public Test

随机推荐

  • C#winform窗体实现对sql server数据库的增删改查

    1 运行效果截图 2 输入用户名 密码进行查询 查找成功则显示 查找不成功显示用户信息不存在 3 输入用户名与密码 向数据库中添加用户信息 添加后数据库表信息
  • Linux软锁cpu,记一次服务器内核软死锁(soft lockup)解决方案

    nogo benlux fc兵蜂 记一次服务器内核软死锁 soft lockup 解决方案 2020 08 02 05 34 28 程梦雨说娱乐 概述 简单记录下最近处理的一个内核软死锁 soft lockup 问题 仅供参考 1 检查系统
  • android在线图标生成工具,图标在线生成工具Android Asset Studio的使用

    在网站的导航资源里看到了一个非常好用的东西 Android Asset Studio 可以在线生成各种图标 之前一直在用一个叫做Android Icon Creator的插件 可以直接在Android Studio的插件里搜索 这个工具的优
  • MySQL----约束

    目录 一 前言 二 约束类型 三 约束使用的语法 3 1 主键约束 PRIMARY KEY 3 1 1 创建表时设置主键约束 3 1 2 修改表时添加主键约束 3 1 3 删除主键约束 3 2 唯一约束 UNIQUE 3 2 1 创建表时设
  • Linux:VirtualBox虚拟机下安装桌面版CentOS

    下载 VirtualBox 虚拟机 官网下载即可 https www virtualbox org wiki Downloads 选择合适的版本安装 下载 CentOS 镜像文件 华为云镜像站 红框指出的镜像文件 二选一即可 Minimal
  • 深度学习图像分类提升精度的11个技巧总结!

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 来源丨大家好我是爱因 编辑丨极市平台 导读 计算机视觉主要问题有图像分类 目标检测和图像分割等 针对图像分类任务 提升准确率的方法路线有两条 一个是模型的修改 另一个是各
  • 蓝桥杯2019年第十届省赛真题-Fibonacci 数列与黄金分割

    题目 题目链接 题解 我未曾设想的道路 我居然以为是高精度的矩阵快速幂 差点心态崩了 直接看了题解 1 50 打个表 发现到20 小数点后八位就不变了 所以 解决 代码 include
  • 【浅谈 new 与 delete】

    目录 前言 new 与 delete 内置类型 自定义类型 operator new 与 operator delete new 和 delete 实现原理 定位new 总结 前言 打怪升级 第39天 在C语言中 我们动态申请内存的方法是使
  • python数据可视化学习-饼状图

    import numpy as np import matplotlib pyplot as plt labels A B C D fraces 15 30 45 10 plt pie x fraces labels labels plt
  • python从入门到放弃,学完python能做什么?

    首先python一门应用广泛的编程语言 所以无论是对于专业的程序员 还是从事其他工作的人 学会python都会增加自己的竞争力 那么 对于程序员或者其他职业的人 学会python具体都有些什么好处呢 一 如果程序员学会python 能做什么
  • 【极客大挑战2019】LoveSQL解题

    1 打开靶机 BUUCTF在线评测 选择web gt 极客大挑战2019 LoveSQL 打开被测试站点 是这个样子的 是上一题EasySQL的延续 2 EasySQL那道题采用万能密码 我们也直接使用万能密码试一下 结果如下 直接给出了密
  • 高德地图中缩放级别(zoom)和比例尺(getScalePerPixel)之间的计算关系

    高德地图缩放级别 zoom 高德开放平台的开发文档中 地图缩放级别为 4 20 如下截图 实际测试结果为 3 19 如下截图 高德地图比例尺 getScalePerPixel 表示当前缩放比例下 每像素代表的实际地图距离 单位米 需求描述
  • vue的npm私服

    1 npm config set registry http xxx xx xxx xxx 8089 repository npmregistry 2 npm install increase memory limit save dev 3
  • 三、手把手记录如何在VisualDSP++软件里创建工程

    记录一下 方便以后翻阅 VisualDSP 是ADI公司针对其DSP器件开发的软件开发平台 支持ADI公司BF60x之外的所有系列DSP处理器 包括Blackfin系列和 ADSP 21XX系列定点处理器 SHARC系列和TigerSHAR
  • STM32 伺服电机 指令脉冲+方向位置控制模式 主从定时器 实现PWM脉冲数精确控制

    实验室有个项目涉及到多个步进电机以及伺服电机的控制 需要电机得到一个触发信号后精确移动一段距离 下面以单个伺服电机控制为例 利用伺服电机的指令脉冲加方向位置控制模式实现精确位置控制 关于伺服电机 所谓指令脉冲 方向控制模式 就是由一路PWM
  • 【STM32】在手册中查看IO的功能说明

    主要功能描述 芯片实际上是通过一定方式读取和控制引脚高低电平的器件 引脚分类 功能说明 备注 电源 VBAT VDD VSS VDDA VSSA VREF VREF 等 link 晶振 IO 主晶振 IO RTC 晶振 IO 下载 IO 用
  • Kotlin Lazy vs Lateinit 属性. 何时使用哪个属性?

    原文链接 Kotlin提供了许多很棒的特性 我们可以利用这些功能 快速构建高质量的应用程序 在所有这些特性中 lateinit 和 lazy 是重要的初始化属性 有必要知道何时使用 lateinit 以及何时使用 lazy 初始化 late
  • 【搜索和回溯】剑指 Offer 28. 对称的二叉树

    题目描述 请实现一个函数 用来判断一棵二叉树是不是对称的 如果一棵二叉树和它的镜像一样 那么它是对称的 示例 输入 root 1 2 2 3 4 4 3 输出 true 题解 运用DFS遍历 递归 求解 Definition for a b
  • mysql索引基础

    1 创建索引 alter table table name add index index name column list alter table table name add unique index name column list
  • Spring框架入门之HelloWorld

    一 什么是框架 框架 即framework 其实就是某种应用的半成品 就是一组组件 供你选用完成你自己的系统 简单说就是使用别人搭好的舞台 你来做表演 而且 框架一般是成熟的 不断升级的软件 框架是对特定应用领域中的应用系统的部分设计和实现