Spring4 快速入门
Spring4 快速入门
1 Spring简介
1.1 Spring是什么?
Spring 是一个 IOC 和 AOP 容器的开源框架,为简化企业级应用而生。
IOC(Inversion of Control)控制反转,不再是等待容器返回资源,而是主动让容器推送资源。
其中DI(Dependency Injection)依赖注入,就是IOC的一种表现方式。说白了,就是利用xml解析+java反射机制技术,读取配置文件给对象赋值罢了(也就是下面的第四步)。
详解可参考:Spring4 IOC详解
AOP(Aspect Oriented Programming)面向切面编程,暂时不说!!!Spring4 AOP详解
1.2 Spring 做什么?
Spring就像一个管家,帮你管理事务。传统的应用,应用层(Struts2)和事务层(Service)联系很紧密,通过Spring管理之间的关系,减低其耦合性。说白了,Spring的出现就是为了解决现有问题,使开发更快捷,更健壮。若是越用越麻烦,谁还用他。另外,一定要好好学习Spring,他可是有一统天下的野心。有针对Struts2的SpringMVC,有针对Hibernate/mybatis的SpringData,以及为了简化开发的 Spring boot 和 Spring Cloud。你害怕了么?
2 入门代码
按照国际惯例,我们先来一个Hello World得意。
第一步:创建maven web项目,不清楚的可以访问:http://blog.csdn.net/qq_19558...
第二步:导包。maven导包的好处,就是可以自己控制自己,把需要的最佳的依赖导入,从而减少包的冲突。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>spring</groupId> <artifactId>helloworld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.2.1.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!-- spring start --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <!-- spring end --> </dependencies>
</project>
package com.spring.hello;
public class HelloWorld { private String hello; public void setHello(String hello) { this.hello = hello; } public void helloWorld(){ System.out.println("Spring say :"+hello); }
}
第四步:配置xml文件,要严格按照语法来写,便于Spring底层代码解析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:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!-- 配置一个 bean --> <bean id="helloWorld" class="com.spring.hello.HelloWorld"> <!-- 为属性赋值 --> <property name="hello" value="Hello World"></property> </bean> </beans>
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloTest { public static void main(String[] args) { //1. 创建Spring 的IOC容器 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); //2. 从容器中获取 Bean 其实就是new 的过程 HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld"); // 也可以是,但不建议 HelloWorld helloWorld = ctx.getBean(HelloWorld.class); //3. 执行函数 helloWorld.helloWorld(); }
}
十一月 23, 2015 12:01:46 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@edbe39: startup date [Mon Nov 23 12:01:46 CST 2015]; root of context hierarchy
十一月 23, 2015 12:01:46 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beans.xml]
Spring say :Hello World
那么一个简单的spring HelloWorld就做好了,是不是很简单!如果你觉得很简单,那么你已经打开了Spring的大门。如果你觉得很难理解,没事!多看敲几遍。原文链接:http://write.blog.csdn.net/po...
每天都在进步,每天都在成长,如果有什么问题和建议可以留言,我会及时处理。如果你觉得不错,可以点个赞哦!
Spring4 快速入门相关推荐
- Spring4 快速入门 1
Spring4 快速入门 1 Spring简介 1.1 Spring是什么? Spring 是一个 IOC 和 AOP 容器的开源框架,为简化企业级应用而生. IOC(Inversion of Con ...
- SpringBoot详解(一)-快速入门
SpringBoot详解系列文章: SpringBoot详解(一)-快速入门 SpringBoot详解(二)-Spring Boot的核心 SpringBoot详解(三)-Spring Boot的we ...
- SpringBoot约定大于配置的特性解读 SpringBoot快速入门
SpringBoot约定大于配置 Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的 ...
- Spring之IOC快速入门(一)
2019独角兽企业重金招聘Python工程师标准>>> 文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.06.21 lutianfei none 本文内 ...
- 穿越 java | 快速入门篇 - 第1节 计算机基础知识
主题:计算机基础知识 开发环境 更多干货 定义 作用 组成元件 CPU 内存 cpu里的高速缓存 BIOS软件(基础输入输出系统) CMOS芯片 机械硬盘 组成 数据存取过程 文件编码 ASCII G ...
- 视频教程-Spring框架快速入门到精通-Java
Spring框架快速入门到精通 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥18.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...
- Shiro第一个程序:官方快速入门程序Qucickstart详解教程
目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...
- 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧
异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...
- Spring Boot 2 快速教程:WebFlux 快速入门(二)
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...
最新文章
- JavaScript对象
- 嵌入式系统中进程间通信的监视方法
- hdu 1055(贪心)
- 牛客题霸 [ 数字在升序数组中出现的次数] C++题解/答案
- 【今日CV 计算机视觉论文速览】Mon, 28 Jan 2019
- Python学习笔记之Windows下通过pip安装Django详细介绍
- 第二章 在Linux上部署.net core
- java中有关类的程序设计_《Java程序设计一》 1,设计课程类及类中包含的属性和方法....
- Android开发笔记(一百五十一)WebView与JavaScript交互的四种形式
- 【分论坛第一期大剧透】开源技术与新IT基础设施联袂共舞
- 01-信贷路由项目架构和 rose 框架的搭建
- google翻译自动检测语言翻译成中文
- 大数据流处理框架介绍
- Direct3D透视教程,教你做出属于自己的透视
- mysql 字段名 减号_MySQL减号
- pandas学习之excel重复项判断显示与去重
- NovelAi + Webui + Stable-diffusion本地配置
- 后台界面设计之表格设计规范参考
- AUC的相关知识及K-S曲线和K-S值介绍
- 粒子的散射模拟matlab程序,基于Matlab的α粒子的散射实验模拟.pdf
热门文章
- javascript简单性能问题及学习笔记
- 活动目录AD 取用户过期时间accountExpires
- 第16 17章节-Python3.5-Django知识点整理 15
- 用户密码以BCrypt加密的方式来防范被破解
- Flex4 在advanceddatagrid组件中以“树形结构”显示数据
- Trie树的C++实现
- Q96:PT(3.4):砂岩纹理(Sandstone Texture)
- app评论如何抓取_可能是史上最独一无二的中国高铁APP——高铁通
- 如何搭建企业数据平台
- 为何要搭建大数据分析平台