spring框架初识

Java Web框架篇之Spring 为什么要有Spring(IoC) Web发展的几个阶段 (1)初级阶段:使用Model1(JSP+JavaBean)/Model2(Jsp+Servlet+JavaBean)/三层模型(表示层(JSP/Servlet)+业务逻辑层+持久化层)进行开发; (2)中级阶段:使用EJB进行分布式应用开发,忍受重量级框架带来的种种麻烦; (3)高级阶段:使用Spring春天带给我们的美好,但是还要忍受很... 阅读详情

spring是一个轻量级Java框架,其核心思想就是DI(Dependency Injection,即依赖注入)和IoC(Inversion of Control,即控制反转),因为其开源、低侵入性,现在已经席卷了很大一部分市场,其最大竞争对手乃是JavaEE框架EJB。EJB3.0以前,由于其笨重以及使用繁琐,被人们无奈弃用,取而代之就是spring,但是spring也有它的局限性,就是spring对分布式的支持不好,但是EJB在这方面很有优势,而且当前EJB3.0简化了操作,使用不再繁琐,竞争力进一步提升。所以,当前轻量级的JavaWeb项目,很多都是使用的spring,我们有必要把它学好!spring框架初识,我希望大家和我一起,再次回顾下Spring的基础知识,积极提出宝贵的意见和建议!本次学习使用的是Spring4.1 版本。

Modules

 

从这幅图中我们可以看出来Spring的整体架构,主要分为六大模块

Core Container

核心部分分为4大块,spring-core, spring-beans, spring-context, spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI和IoC功能。 Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression language的用法。

AOP and instrumentation

Aop模块提供了面向切面编程的实现,和AspectJ集成。

Messaging

Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。

Data Access/Integration

Data access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。

Web

Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。

Test

Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。

关于各个模块具体的解释及作用我们会在后面的文章中一一提到,也请有兴趣的读者自行去查阅spring官方文档,获得更详细的说明。

第一个Spring小程序

新建一个User类,一个UserDao类以及一个测试类:

User.java

package com.adam.java.spring.po;

public class User {

private String name;

private int age;

private int score;

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;

}

public int getScore() {

return score;

}

public void setScore(int score) {

this.score = score;

}

public String toString(){

return "tostring from user";

}

}

UserDao.java

package com.adam.java.spring.dao;

import com.adam.java.spring.po.User;

public class UserDao {

private User user;

public void add(){

System.out.println("add from userdao");

System.out.println(user.toString());

}

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

}

DITest.java

package com.adam.java.spring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.adam.java.spring.dao.UserDao;

public class DITest {

@SuppressWarnings("resource")

public static void main(String[] args) {

ApplicationContext atx = new ClassPathXmlApplicationContext("beans.xml");

UserDao userDao = (UserDao) atx.getBean("userDao");

userDao.add();

}

}

一个配置文件beans.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"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="user" class="com.adam.java.spring.po.User"/>

<bean id="userDao" class="com.adam.java.spring.dao.UserDao">

<property name="user" ref="user"/>

</bean>

</beans>

执行测试类,得出如下输出:

add from userdao

tostring from user

第6章 初识Spring框架 本章主要讲解了Spring框架的基础知识,首先介绍了Spring框架基础知识,包括了Spring概述、Spring框架的优点、Spring框架的体系结构、Spring 5的新特性和Spring下载及目录结构;然后编写了Spring的入门程序;最后讲解了控制反转与依赖注入,包括控制反转的概念、依赖注入的概念、依赖注入的类型和依赖注入的应用。通过本章的学习,读者可以对Spring框架的基础有个大致的了解,为框架开发打下坚实基础。 ... 阅读详情

相关推荐

修复后找不到ip 黑群晖_黑群晖引导U盘损坏了怎么办?

前言虽然一般来说引导U盘损坏的可能性很小,但是避免不了万一出现问题导致黑群晖没有办法引导进入系统也是一件相当麻烦的事情。这里我就用两块U盘做个小试验,看看如果黑群晖上的引导U盘损坏以后,另一块U盘需要怎样写引导文件才能让黑群晖正常引导进入系统。试验开始我这里黑群晖使用的是DSM6.1.7的系统,U盘一块使用的是闪迪的酷豆,另一块就是闪迪的酷铄。目前系统引导U盘使用的是酷豆,VID:0781 PID...

weixin_36239323的博客 8272

Spring框架小白的蜕变

1.java web发展史 (1)第一个阶段:JavaBean + Servlet + JSP逐步发展 (2)第二个阶段:面对EJB重量级框架带来的种种麻烦 (3)第三个阶段:SpringMVC/Struts + Spring + Hibernate/myBatis (4)第四个阶段:享受SpringBoot "约定大于配置"的种种乐趣 (5)第五个阶段:以Dubbo为代表的SOA微服务...

mkvsxuwe的博客 322

保姆级教程:Windows下用GDC-Client下载TCGA数据,从环境变量配置到成功下载

本文提供Windows平台下使用GDC-Client下载TCGA数据的完整教程,从环境变量配置到成功下载。详细介绍了GDC-Client工具的安装、系统环境变量设置、配置文件优化以及数据下载实战技巧,帮助生物信息学研究者高效获取TCGA数据库中的癌症基因组数据。

weixin_42520025的博客 405

Java之美[从菜鸟到高手演变]之spring框架初识

spring是一个轻量级Java框架,其核心思想就是DI(Dependency Injection,即依赖注入)和IoC(Inversion of Control,即控制反转),因为其开源、低侵入性,现在已经席卷了很大一部分市场,其最大竞争对手乃是JavaEE框架EJB。

智慧演绎,无处不在 5万+

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2594

CentOS7安装openGauss5.0.2LTS版本

该文档要根据自己的实际情况调整ip地址。要根据自己的实际网卡调整。

superhanyubo的专栏 2581

java后台开发入门(springboot快速入门)

带领大家借助当下比较流行的springboot框架快速开发属于自己的java后台。即便你是编程小白,没有任何编程基础也可以学习本课程。知识点1,Java2,springboot3,freemarker4,bootstrap4.35,Javaweb6,微信小程序同时会借助当下最热门的微信小程序来作为我们的前端展示。所以课程中也会教给大家一部分小程序开发的知识。大家只需要跟着老师一步步学习,我们既可以学习到java知识,也可以学习到小程序开发和web开发相关的知识。我们学习过程中会有老师在线实时解答,每节课都会有对应的源码和配套笔记给到大家。

激光雷达-IMU标定工具lidar_imu_calib保姆级教程(VLP-16实测)

本文提供激光雷达与IMU联合标定的详细实战教程,重点解析lidar_imu_calib工具在VLP-16上的应用。从环境部署、数据采集技巧到参数配置与结果验证,手把手指导完成标定全流程,并详解如何在LIO-SAM等SLAM系统中应用标定结果,确保传感器融合精度。

food6的博客 475

Java 必看的 Spring 知识汇总

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。 Spring优点: 低侵入式设计,代码的污染极低; 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺; Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦 S

CRMEB小程序商城的博客 6514

制作一个完整的Shopify主题

Liquid是Shopify的模板语言,用于动态渲染页面内容。Liquid是Shopify的模板语言,用于动态渲染页面内容。Shopify主题包含多个文件和文件夹,包括布局、模板、部分、配置和资产文件夹。Shopify主题包含多个文件和文件夹,包括布局、模板、部分、配置和资产文件夹。准备好你的主题后,可以将其提交到Shopify主题商店。确保你的主题符合Shopify的质量标准和指南。准备好你的主题后,可以将其提交到Shopify主题商店。确保你的主题符合Shopify的质量标准和指南。

luckucu的博客 177

065、鲁棒控制基础:H∞控制简介

本文从作者调试四旋翼时PID控制器失效的实际案例出发,介绍了H∞控制的基本原理及其在飞控中的应用。文章指出传统控制方法对模型误差敏感的局限性,阐释了H∞控制通过最小化扰动到输出的传递函数无穷范数来保证系统鲁棒性的核心思想。 主要内容包括: H∞控制的数学框架,通过求解Riccati方程设计控制器 飞控中的典型应用场景,如结构不确定性建模和混合灵敏度问题 一个简化的俯仰角控制设计示例 工程实现中的常见问题:权重函数选择、控制器降阶和离散化注意事项 作者强调H∞控制虽能有效处理有界不确定性,但仍需结合工程直觉进

2401_88858637的博客 44

初识Spring框架

目录1、为什么要学框架2、Servlet vs SpringBoot2.1 servlet框架步骤2.2 SpringBoot框架的步骤2.3 二者比较3、Spring核心与设计思想3.1 初识Spring3.2 什么是IoC?3.3什么是DI4、Spring创建与使用4.1 创建 Spring项目4.2 存储 Bean 对象4.3 获取并使用Bean对象4.3 总结学习框架相当于从”小作坊“到”工厂“的升级,小作坊什么都需要自己来完成,而框架就在一定意义上实现了自动化,框架更加易用、简单且高效。①首先创建

weixin_46972127的博客 600

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3414

初识Spring———[SSM框架教程]

IoC、DI基础案例及分析

qq_63947426的博客 128

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一、初识 Spring 框架

一、初识 Spring 框架

shiyu_951的博客 2296

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Spring框架(初识Spring)

目录,更新ing,学习Java的点滴记录   目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录

qq_41649001的博客 1711

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Spring 框架】初识 Spring

介绍了 Spring 和 Maven,并简单实现了一个 SpringBoot 程序

flmz_Kk的博客 1497

Spring框架初识

Spring在它的AOP模块中提供了对面向切面编程的丰富支持,Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文,提供了Spring和其它Web框架的集成,比如Struts、WebWork。虽然Spring可以很容易地与其它MVC框架集成,例如Struts,但Spring的MVC框架使用IoC对控制逻辑和业务对象提供了完全的分离。这是Spring框架最基础的部分,它提供了。

dasfsafadf的博客 348

SSM框架之初识Spring

Spring框架之初识Spring框架 什么是Spring框架? Spring是分层的 JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的的JavaBean来暗处以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。 在实际开发中,通常服务器端在采用三层体系架构,分别为表示层(Web)、业务逻辑层(Service)、持久层(Dao)

若离的博客 193

【初识Spring框架】

我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。 ⽤⼀句话概括 Spring:Spring 是包含了众多工具方法的 IoC 容器。

书生-w的博客 6969
上一篇: Arrays类及其方法分析
下一篇: JAVA 三大框架基础面试题
java1856905
博客等级 码龄8年 100粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值