聊聊、Spring 第一篇
Spring 大家都不陌生,企业应用中很流行的一个平台。从最开始的 Servlet 控制所有,到 MVC 模式的出现。从 SSH (Struts、Spring、Hibernate) 所谓的三剑客 到 SpringMVC、SpringBoot 等等。技术总是不断在更新,开源框架也越来越多。世界上很多的大公司也慢慢走向了开源的道路,其实这也是必经之路。世界上总有那么多不断挑战权威,不断挑战垄断,不断改变生活的人。好啦,闲话不说了,我们开始搭建最基本,最小型化的 Spring 应用环境。Spring 核心的概念是控制反转,依赖注入。控制反转的意思就是控制权交给 Spring 平台,依赖注入就是程序依赖于 Spring Bean 通过 Java 反射机制将所需对象注入到程序中。
一、【工具】
项目管理 Maven,开发工具 Eclipse Kepler,JDK 1.7。
二、【Jar 包】
spring-context-4.3.8.RELEASE.jar
三、【项目结构】

四、【web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"> <display-name>mrp</display-name> </web-app>
五、【application.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" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean id="user" class="com.mrp.www.service.User" /> </beans>
六、【User类】
package com.mrp.www.service;
public class User {
private String name = "xxxx";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
七、【Test测试类】
package com.mrp.www.service; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { private static ApplicationContext context; public static void main(String[] args) { context = new ClassPathXmlApplicationContext("application.xml"); User u = (User) context.getBean("user");
System.out.println(u.getName()); } }
八、【 pom.xml】
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>www.mrp.com</groupId>
<artifactId>mrp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mrp Maven Webapp</name>
<url>http://maven.apache.org</url> <properties>
<build_path>C:\temp\${project.artifactId}</build_path>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring_webmvc_version>3.2.4.RELEASE</spring_webmvc_version>
<spring_version>4.2.6.RELEASE</spring_version>
<jstl_version>1.2</jstl_version>
<standard_version>1.0.6</standard_version>
<jackson_version>1.9.13</jackson_version>
<spring_test_version>3.2.4.RELEASE</spring_test_version>
<hessian_version>4.0.7</hessian_version>
<servlet_version>2.5</servlet_version>
</properties> <dependencies> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.8.RELEASE</version>
</dependency> </dependencies> <build>
<finalName>mrp</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<uriEncoding>${project.build.sourceEncoding}</uriEncoding>
<port>8017</port>
<path>/${project.artifactId}</path>
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerVersion>1.6</compilerVersion>
<generatedSourcesDirectory>${build_path}</generatedSourcesDirectory>
<generatedTestSourcesDirectory>${build_path}</generatedTestSourcesDirectory>
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
Spring 平台可以集成很多的开源框架,而且 Spring 轻量级,配置简单,上面的例子仅仅配置了一个 User Bean,现实应用当中可就不止一个 Bean 这么简单了。会涉及到 AOP 编程,事务,数据源,缓存,分布式等等一系列的东西。后面在慢慢写出来吧,希望对大家有所帮助,也让自己有所收获。谢谢大家观看!
聊聊、Spring 第一篇的更多相关文章
- spring 第一篇(1-1):让java开发变得更简单(下)转
spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...
- Spring第一篇
我计划用3到五篇文章来描述Spring,这是第一篇 1 . 什么是Spring Spring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnso ...
- Spring第一篇【介绍Spring、引入Spring、Spring六大模块】
前言 前面已经学习了Struts2和Hibernate框架了.接下来学习的是Spring框架-本博文主要是引入Spring框架- Spring介绍 Spring诞生: 创建Spring的目的就是用来替 ...
- SSH框架之Spring第一篇
1.1. spring概述: 1.1.1 spring介绍 : Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control : 反 ...
- spring 第一篇(1-1):让java开发变得更简单(下)
切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...
- 初学Java ssh之Spring 第一篇
之前虽然毕业前实习的工作是使用的C# .NET语言,但是,毕业后还是果断应聘Java.虽然自己对Java的理解不如C#深入,只是对基础知识比较熟悉,但还是义无返顾了··· 虽然应聘经历比较坎坷,但最终 ...
- spring 第一篇(1-3):鸟瞰spring蓝图
如你所见,spring框架的核心是关注于如何使用DI.AOP和模板来让企业级java开发变得更简单.spring确实也是这样做的,所以很值得你去使用它.不过spring内容可能比你所能看到的要多很多. ...
- spring 第一篇(1-2):管理你的beans
在基于spring的应用中,你的应用对象存活在spring container(容器中).容器创建,将它们装配到一起.还有配置和管理它们完整的生命周期(从生到死) 下一章节,你会看到如何配置Sprin ...
- spring 第一篇(1-1):让java开发变得更简单(上)
1.释放POJOS能量 传统开发中是如何束缚POJOS呢,如果你开发过java很长时间,那你一定有接触过EJB的开发.那时候开发一个小小的功能都要扩展框架的类或者实现其接口.所以你很容易在早期的Str ...
随机推荐
- elasticsearch dump加过滤条件(--searchBody)出错的解决 Unexpected token ' in JSON at position 0
环境:本文测试在es2.4,win10下进行 es dump导数据可以加过滤条件,只导满足条件的数据.方法是用—searchBody参数,值是查询时的查询条件的json格式,例如 然而按官网和网上的格 ...
- dstat参数选项
Usage: dstat [-afv] [options..] [delay [count]]Versatile tool for generating system resource statist ...
- 自定义标签jsp2格式
在写自定义标签时候是不是感觉很烦啊,其实人家也是这样认为的,于是我们的jsp新的标准对标签进行了更改,使我们用起来更简单.到底哪里简单呢?看看代码再说咯: 还是老规矩,先上一个标签的逻辑类: 1. p ...
- 洛谷 P2424 约数和
题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...
- UVA12904 Load Balancing(中途相遇法)
虽然这题可以用暴力n^3过,但是还有有种n^2的方法的,枚举b,对于b,分别枚举a和c,得到对于这个b的最优解,然后从所以b中选一个最优的. 要保证字典序最小,只要从小往大枚举就好了 感谢moonfl ...
- GentleNet使用之详细图解[语法使用增强版]
目录 第一章 开发环境 第二章 简介 第三章 Gentle.Net-1.5.0 下载文件包介绍 第四章 使用步骤 第五章 源码下载 第一章.开发环境: Vs 2010 + Sql 2005 + Gen ...
- C++STL概览
本文转自http://www.cnblogs.com/ggjucheng/archive/2012/01/03/2310884.html 引言 C++ STL可以分为标准容器,算法和函数对象,迭代器和 ...
- Ubuntu16.04安装后开发工作的配置
由于多次安装Ubuntu16.04用于学习,其中出了多次问题.每次找参考文件太麻烦,于是写了这篇总结,方便之后备用. 一.精简系统,删除不常用软件 参考资料来自:https://blog.csdn.n ...
- 09GNU C语言程序编译
1. C 语言程序概述 GNU gcc 对 ISO 标准 C89 描述的 C 语言进行了一些扩展,其中一些扩展部分已经包括进 IOS C99 标准中.本节给出了内核中经常用到的一些 gcc 扩展语 ...
- java实现可安装的exe程序
java实现可安装的exe程序 通过编写Java代码,实现可安装的exe文件的一般思路: 1.在eclipse中创建java项目,然后编写Java代码,将编写好的Java项目导出一个.jar格式的ja ...