第一章 Spring快速入门

Spring Boot快速入门指南(新手向) SpringBoot入门 0.学习目标 了解SpringBoot的作用 了解Java配置的方式 了解Spring Boot自动配置原理 掌握Spring Boot的基本使用 了解Thmeleaf的基本使用 1.了解Spring Boot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot Spring Boot是Spring项目中的一个子工程,与我们之前所学习的Spring-framew 阅读详情


1.1   Spring是什么

     结合struts 和hibernate来说,struts是 web 框架,接管了jsp/action/actionfrom

     hibernate 是 orm框架,对象和关系映射的框架,处于持久层。

     spring 是容器框架,用于管理和配置bean,并维护bean之间关系的框架 。

     bean的概念:Java中的任何一个对象,可以时javabean/service/action/数据源./DAO。

     IOC(控制反转 inverseof control) ,DI( dependency injection 依赖注入)。

     Spring可以接管struts 和hibernate,DAO层,Service层,数据源层和持久层。

1.2   Spring框架组成部分




图1-1 Spring框架


1.Core封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。


2. Context(上下文) 封装包构筑于Core封装包的坚固基础上:它提供了用一种框架风格的方式来访问对象,有些像JNDI注册表。Context封装包继承了beans包的功能,还增加了国际化,事件传播,资源装载,以及透明创建上下文,例如通过servlet容器。


3.DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(简单Java对象)都适用。


4.ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射。


5.Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。


6. Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。


7. Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web form之间。

 

图1-2 Spring所处的位置

 

1.3   开发一个简单的spring项目

1、引入spring的开发包(最小配置spring.jar该包把常用的jar都包括, 还要写日志包 common-logging.jar

2、创建spring的一个核心文件applicationContext.xml(也可以使用其他的名字), [hibernate有核心 hibernate.cfg.xmlstruts核心文件 struts-config.xml], 该文件一般放在src目录下,该文件中引入 xsd文件,如下:

<?xml version="1.0"encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd
            http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
 
</beans>

3、配置bean

<!-- 在容器文件中配置bean(service/dao/domain/action/数据源) -->

<!-- bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存

<bean id="userService" class="com.service.UserService">
	<property name="name">
		<value>lisi</value>
	</property>
	<property name="byeService" ref="byService"/>
</bean>


4、获取Bean,并调用方法

/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//我们现在使用spring来完成上面的任务
		//1.得到spring 的applicationContext对象(容器对象)
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService us=(UserService) ac.getBean("userService");
		us.sayHello();

	}

1.4 小结

1、使用spring ,没有new 对象,我们把创建对象的任务交给spring框架

2、ioc是什么?

答:ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。

3、DI是什么?

答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术。


HelloWorld完整程序

BybService.java

package com.service;

public class BybService {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void sayBye(){
		System.out.println("bye  "+name);
	}
}


UserService.java

package com.service;

public class UserService {

	private String name;
	
	private BybService byeService;

	public BybService getByeService() {
		return byeService;
	}

	public void setByeService(BybService byeService) {
		this.byeService = byeService;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void sayHello(){
		System.out.println("hello "+name );
		byeService.sayBye();
	}
	
}

bean装配文件 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"
		xmlns:context="http://www.springframework.org/schema/context"
		xmlns:tx="http://www.springframework.org/schema/tx"
		xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="byService" class="com.service.BybService">
	<property name="name">
		<value>zhangsan</value>
	</property>
</bean>

<bean id="userService" class="com.service.UserService">
	<property name="name">
		<value>lisi</value>
	</property>
	<property name="byeService" ref="byService"/>
</bean>
</beans>

测试程序Test.java

package com.test;

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

import com.service.BybService;
import com.service.UserService;
import com.util.ApplicaionContextUtil;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.得到spring 的applicationContext对象(容器对象)
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		UserService us=(UserService) ac.getBean("userService");
		us.sayHello();
	}

}


运行结果:




 

 

 

 

Spring Boot 2 快速教程:WebFlux 快速入门(一) 本文主要讲了 Spring Boot 2.0 WebFlux 背景和快速入门使用。用的是基于功能性端点去创建一个服务,但这个有点代码偏多。下一章一个 CRUD 我们使用注解控制层,让开发更方便。 阅读详情

相关推荐

Spring快速入门

引言 最近几天一直在忙着学习数据结构和算法,关于JavaEE的框架也有一阵子没更新了。那么今天就来聊一聊Spring框架吧,针对该框架写一篇快速入门的文章。 Spring简介 Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分J...

。。。 1万+

【SSM直击大厂】第一章:Spring快速入门

1.Spring简介 1.1Spring是什么 Spring 是分层的 Java SE / EE 应用 full - stack 轻量级开源框架,以 loC ( Inverse Of Control :反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核。 提供了展现层 SpringMvC 和持久层 Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 av..

专注Spring、SSM、数据结构与算法、蓝桥杯领域创作者 1985

【Godot4自学手册】第一节配置Godot运行环境

Godot是一款自由开源、由社区驱动的 2D 和 3D 游戏引擎!它是一款功能丰富的跨平台游戏引擎,可以通过统一的界面创建 2D 和 3D 游戏。它提供了一套全面的通用工具,因此用户可以专注于制作游戏,而无需重新发明轮子。游戏可以一键导出到多个平台,包括主流的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS)、基于 Web 的平台以及主机平台。

zhaoyang314的博客 5981

第一章 Spring Security快速入门

第一章 Spring Security快速入门。

moments的博客 904

多模态融合相关概念

多模态图像融合

weixin_43921949的博客 7354

STM32H743 LAN8720网口配置避坑指南:用CubeMX v6.5.0快速搞定LWIP+FreeRTOS

本文详细介绍了使用CubeMX v6.5.0配置STM32H743与LAN8720网口的LWIP+FreeRTOS方案,涵盖硬件连接、时钟配置、ETH外设初始化及LWIP协议栈调优等关键步骤。特别针对常见陷阱提供解决方案,帮助开发者快速实现稳定网络通信,适用于嵌入式网络开发场景。

weixin_33739523的博客 356

Spring Boot 第一章 快速入门

Spring Boot快速入门 Spring Boot 是一个快速开发框架,可以迅速搭建出一套基于 Spring 框架体系的应用,是 Spring Cloud 的基础。 Spring Boot 开启了各种自动装配,从而简化代码的开发,不需要编写各种配置文件,只需要引入相关依赖就可以迅速搭建一个应用。 特点 1、不需要 web.xml 2、不需要 springmvc.xml 3、不需要 tomcat,Spring Boot 内嵌了 tomcat 4、不需要配置 JSON 解析,支持 REST 架构 5、个性化

ShiningBlueOcean 647

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

第一章:Spring Boot快速入门

什么是 spring boot Spring Boot其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。Spring Boot 的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。Spring Boot 充分利用了 JavaConfig 的配置模式以及“约定优于配置”的理念,能够极大的简化基于 Spring MVC 的 Web ...

李谦的博客 343

采用离散模型搭建永磁同步电机控制系统

永磁同步电机发电系统分为控制器和发电机,通过simulink仿真软件进行发电系统的离散系统仿真。离散搭建仿真,可以更方便的自动代码生成。通过实践经验离散模块搭建,更能加深对整个控制系统的理解。离散系统在矢量控制中经常涉及到上个开关周期的角度,电压,或者预测下个周期的角度,电流,一般都是通过延时模块实现。PWM比较值寄存器被改写后都是使能了预装载,采样后触发计算到比较值生效可以延时0.5个开关周期Ts,也可以延时1个开关周期Ts,可以通过离散系统进行仿真,大大缩短开发周期。

f1072239934的博客 2862

DataGridView 右键菜单复制(公共)

dataGridView1.CellMouseClick += new DataGridViewCellMouseEventHandler( (sender1, e1) => { if (e1.Button == MouseButtons.Right) {

沁心渃水 2829

第一章-spring boot快速入门hello world

一、spring boot 简介   每一个spring boot项目都是以spring的子项目的形式来运行,开发人员不用再去关注繁琐的配置文件,可以把精力放到业务逻辑以及更深层次的架构方面。 二、环境   1. jdk1.8  2. springboot 1.5.9.RELEASE  3. apache maven(3.5.0)  4.开发工具(IntelliJ IDEA ) 三...

weixin_33890499的博客 113

YOLOv5改进有效涨点目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好本专栏自开设两个月以来已经更新改进教程60余篇其中包含C2f、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv8文档并不能在优快云上传(所有的创新点都经过我的测试是可用的,得到该文件之后大家可以随意组合使用),所以会建立群的形式在内上传我的文件和视频我也会在群内不定期和大家交流回答大家问题,同时定期会更新一些文章的创新点(经过我融合测试后的,先到先得)。本专栏持续更新网络上的所有前沿文章。

Snu77的博客 3万+

Spring Security第一章(Security快速入门与底层原理)

Spring Security 是一个提供身份验证、授权和防御常见攻击的框架。它为保护命令式和响应式应用程序提供了一流的支持,是保护基于 Spring 的应用程序的事实标准。功能:身份认证(authentication)授权(authorization)防御常见攻击(protection against common attacks)

Du_XiaoNan的博客 1000

C#上位机实战:PLC与检测设备无缝对接,构建产品质量实时判定系统

本文分享了基于C#开发的汽车零部件质量检测系统实现经验。系统采用三层架构:设备层(PLC/视觉相机/三坐标)、通信层(OPC UA/SDK/串口)和应用层(数据采集/判定/存储)。重点解决了三大技术难点:1)通过OPC UA订阅模式将PLC通信延迟从500ms降至50ms;2)反编译厂商Demo破解视觉SDK对接难题;3)采用时间戳+产品ID实现多设备数据同步。系统上线后质检人员减少67%,误判率降至0.5%,数据追溯效率显著提升。文章强调工业场景下稳定性优先于技术复杂度,实用经验值得借鉴。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 799

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vue+springboot快速入门

**环境配置**:为了能够顺利地进行SpringBoot和Vue的开发,需要配置相应的开发环境。- **基础概念**:Spring Boot是一个极为流行的Java框架,它可以简化新Spring应用的初始搭建以及开发过程。- **静态资源配置**:在Spring Boot中,可以通过配置文件指定静态资源的访问路径,例如,可以将resources/static目录映射为服务器的根目录,或者通过spring.web.resources.static-locations配置自定义存放目录[^5^]。

weixin_61995809的博客 514

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

20210423# 《Spring源码深度解析(第2版)》_郝佳

backTo : https://blog.youkuaiyun.com/qq_17079255/article/details/115365608 目录

qq_17079255的博客 806

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring入门第一讲——Spring框架的快速入门

Spring的概述什么是Spring据度娘所载: Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。 Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Exp

李阿昀的博客 14万+

Spring从入门到入土——快速上手Spring

HelloSpring 导入依赖 ​ 我们要想使用Spring,首先肯定要先导入其jar包,我们只需要在maven配置文件中加入响应的依赖,就会自动下载相应的依赖项, <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <group...

冢狐的私人空间 1336

Spring Security快速入门

实际开发的过程中,我们需要应用程序更加灵活,可以在SpringSecurity中创建自定义配置文件Java自定义配置用来管理用户信息,是UserDetailsService的一个实现,用来管理基于内存的用户信息。创建一个WebSecurityConfig文件:定义一个@Bean,类型是UserDetailsService,实现是InMemoryUserDetailsManager@EnableWebSecurity//Spring项目总需要添加此注解,SpringBoot项目中不需要@Bean。

weixin_70705450的博客 1800

Spring Task 快速入门

是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间分为6或7个域,由空格分隔开,每个域代表一个含义每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)2022注意:一般日和周的值不同时设置,其中一个设置,另一个用?表示(周与日不能同时设置,他们俩必须有一个为问号)。为了描述这些信息,提供一些特殊的字符。这些具体的细节,我们就不用自己去手写,因为这个cron表达式,它其实有在线生成器。

程序猿追的博客 1万+

Spring 快速入门案例

File → New → Project 选择Spring ,然后再 Libraries 下选择set up library later Use library : 如果你已下载好了jar包,可选择该项,然后点击Create . .选择导入所需的jar Download :如果你没有下载好所需jar,可选择该选项下载Spring所需的部分jar,并且它还会自动给你创建一个applicatio...

想好了就去做吧 即便失败了 至少这条路上留下了你的脚印 5149

Spring 快速入门

Spring 快速入门 快速入门流程 下载Spring Jar包 1.1 直接在浏览器地址栏输入 https://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载某个版本 1.2 下载完成后解压,查看目录结构。 导入Spring核心开发Jar包到工程 2.1 下图是开发中需要用到的核心jar包 + 2.2 或者可以Maven引入 ``` <dependencies> &l

顾曲周郞的博客 202

Spring01 —— Spring快速入门

前言 SSM系列笔记,基于IDEA开发学习,对于自己来说写博客相当于一个云笔记,温故而知新,如果对于您有帮助笔者很开心也乐于分享所得。觉得有帮助的希望多三连支持😘 环境搭建 1、新建一个空项目 2、新建一个模块 选择maven项目 不使用骨架 3、构建web项目 4、修改项目路径 两个路径都要修改 一、Spring概述 1.1、spring是什么 Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)

春和的博客 829
上一篇: 提高 Linux 上 socket 性能
下一篇: 第二章 ApplicationContext与BeanFactory
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值