【Spring是什么?】

1.Spring是一个开源框架。

2.Spring为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB(EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行)才能实现的功能。

3.Spring是一个IOC(DI)和AOP容器框架。

具体描述:

--轻量级:Spring不具有侵入性-基于Spring开发的应用中的对象可以不依赖于Spring的API。

--依赖注入(IOC、DI-dependency injection)

--面向切面编程(AOP-aspect oriented programming)

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

--框架(胶水框架):Spring实现了使用简单的组件配置组成一个复杂的应用。在Spring中可以使用XML和Java注解组合这些对象。

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

【Spring模块】

【优点】

1.将更多的框架整和到一起,使开发变得更加简单方便。

2.面向接口编成,降低了程序的复杂度。

3.在web开发中,使得测试变得更加简单、方便。

4.自身就包含了较多的组件,使得web开发变得更加容易(SpringMVC目前已经大量的替代了Strus2)。

【搭建Spring开发环境】

1.把以下jar包导入到工程的classpath下(lib文件夹中):

2.Spring的配置文件:一个典型的Spring项目需要创建一个或多个Bean配置文件,这些配置文件用于在Spring IOC容器里配置Bean。Bean的配置文件可以放在classpath下,也可以放在其他目录下。

【创建Spring项目】

HelloWorld.java:

 package com.hk.beans;

 public class HelloWorld {

     private String name;

     public void setName(String name) {
//System.out.println("setName:" + name);
this.name = name;
} public void hello(){
System.out.println("hello:" + name);
} /*
public HelloWorld(){
System.out.println("HelloWorld's Constructor...");
}
*/
}

Main.java:

 package com.hk.beans;

 import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main {
public static void main(String[] args) {
/*
//这两步可以交给Spring来完成
*
//创建HelloWorld的一个对象
HelloWorld helloWorld = new HelloWorld();
//为name属性赋值
helloWorld.setName("猩生柯北");
*/ //1.创建 Spring 的IOC 容器对象
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //2. 从IOC容器中获取Bean实例
HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld"); //3. 调用hello方法
helloWorld.hello();
} }

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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置bean -->
<bean id="helloWorld" class="com.hk.beans.HelloWorld">
<property name="name" value="Spring"></property>
</bean> </beans>

【运行结果】

1.在不用Spring框架的情况下:

2.使用Spring框架的情况下:

3.只创建Spring IOC容器对象的情况下:(这里为HelloWorld.java的setName方法添加一个输出语句以及添加一个无参但方法体内包含一个输出语句的构造方法)

注:只创建容器情况下,在创建这个容器的时候它会调用HelloWorld()构造器,对在配置文件中配置的bean进行初始化,对象创建了,同时对调用set方法对那个相对应的属性赋值,所以第二步(2. 从IOC容器中获取Bean实例)和第三步(3. 调用hello方法)就顺理成章了。

Spring之HelloWorld的更多相关文章

  1. Spring之HelloWorld再起

    第一步:打开File->New->Other…,选择Java Project,创建标准Java项目. 第二步:在项目下添加lib文件夹用于存放jar文件,resources用于存放xml配 ...

  2. 2. Spring 的 HelloWorld

    初学Spring,就先来写一个 Spring 的 HelloWorld 吧 1. 首先,新建一个 java Project(因为暂时不需要网页,所以就不用创建 web 项目了) 2. 导入 Sprin ...

  3. Spring学习--HelloWorld

    Spring: Spring 是一个开源框架. Spring 是为简化企业级应用开发而生,使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是一 ...

  4. IDEA+Maven+Spring MVC HelloWorld示例

    用Maven创建Web项目 选择webapp模板 创建成功后点Enable Auto-Import idea给我们创建出来的结构是这样的,这还不标准,需要自己修改. 在main文件夹下创建java文件 ...

  5. 第一个Spring程序HelloWorld

    对于初学者而言,任何理论化的讲解都比不上一个简单的HelloWorld,我们在学习Spring时也不外乎用最简单的HelloWorld程序来将这个灵活而又强大的轻量级框架推送到诸位面前.想要说明的是现 ...

  6. SpringMVC(2)—SpringMVC整合Spring的HelloWorld

    一.这是一个SpringMVC框架的案例HelloWorld 功能:HelloWorld 二.SpringMVC运行流程 1.流程 请求-->springDispatcherServlet的ur ...

  7. Spring笔记①--helloworld

    Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的: 目的:解决企业应用开发的复杂性 功能:使用基本的Javabean ...

  8. Spring Boot☞HelloWorld开篇

    目录结构 POM.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

  9. spring入门笔记-(一)、spring boot HelloWorld

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

随机推荐

  1. linux 磁盘 分区、格式化、挂载

    将容量结果易读的容量格式显示出来df -h 分区 初次接触仅分成两个分区(“/与Swap”)预留一个备用的剩余磁盘容量 磁盘分区 fdisk #df /找出磁盘文件名#fdisk /dev/hdc#m ...

  2. 解决Robot Framework运行时没有Log的方案

    Robot Framework自动化测试过程中,运行多次后会出现RIDE没有log的情况. 造成这种现象的原因是: 执行失败的测试用例,chrome.exe和chromedriver.exe进程没有关 ...

  3. 贪心 CodeForces 124B Permutations

    题目传送门 /* 贪心:全排列函数使用,更新最值 */ #include <cstdio> #include <algorithm> #include <cstring& ...

  4. HDFS执行getDatanodeReport输出信息

    HDFS执行getDatanodeReport输出信息: Name: (192.168.101.100) Hostname: bigsrv Decommission Status : Normal C ...

  5. Latex排版工具的使用(二) 分类: Latex 2014-06-14 23:01 389人阅读 评论(0) 收藏

    Latex可以支持中文排版,如何实现中文支持可以到网上查找教程. 下面编写一段对中文排版的Latex源文档: 新建文件second.tex: \documentclass{article} \usep ...

  6. Java中的流(1)流简介

    简介 1.在java中stream代表一种数据流(源),java.io的底层数据元.(比作成水管)2.InputStream 比作进水管,水从里面流向你,你要接收,read3.OutputStream ...

  7. C#中的预编译指令介绍[转]

    原文链接 1.#define和#undef 用法: #define DEBUG #undef DEBUG #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量,但是它没有具体的值 ...

  8. 455 Assign Cookies 分发饼干

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...

  9. Android开发学习—— 消息机制

    ###主线程不能被阻塞* 在Android中,主线程被阻塞会导致应用不能刷新ui界面,不能响应用户操作,用户体验将非常差* 主线程阻塞时间过长,系统会抛出ANR异常* ANR:Application ...

  10. 【Java】包装类型

    Java中的基本类型功能简单,不具备对象的特性,为了使基本类型具备对象的特性,所以出现了包装类,就可以像操作对象一样操作基本类型数据. 一.基本类型对应的包装类 基本类型                ...