Spring

简介:

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

依赖注入(DI—dependdency injection、IOC)

面向切面编程:(AOP—aspect oriented programming)

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

框架:Spring实现类使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和java注解组合这些对象

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

Spring 设计理念

Spring是面向Bean的编程

Spring 两大核心技术

控制反转(IoC:)将组件对象的控制权从代码本身转移到外部容器

组件化对象的思想:分离关注点,使用接口,不再关注实现

目的:解耦合.实现每个组件时只关注组件内部的事情

编写第一个HelloWorld程序

安装Spring tool suite

Spring tool suite是一个Eclipse插件,利用该插件可以更方便的在Eclipse平台上开发基于Spring的应用

安装后将Eclipse进行重启

搭建Spring开发环境

把以下jar包加入到工程的classpath下:

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

现在可以写我们的HelloWorld,结构如下:

applicationContext.xml是Spring的配置文件

file-->new-->other

创建以后

效果如下:

会为我们生成Spring配置文件的头信息,这是我们之前安装Spring tool suite插件为我们做的

编写javaBean

我们编写的javaBean代码为

package cn.bdqn.spring;

public class HelloSpring {

//定义who属性,该属性的值通过Spring框架进行设置

private String who=null;

/**

* 打印方法

*/

public  void print(){

System.out.println("hello,"+this.getWho()+"!");

}

/**

* 获得who

* @return who

*/

public String getWho(){

return who;

}

/**

* 设置who

* @param who

*/

public void setWho(String who){

this.who=who;}

}

编写Spring的配置文件

现在编写我们的Spring配置文件,代码如下:

<?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

class属性值是我们javaBean的全类名

id是唯一标识

property标签中的name属性的值是我们javaBean中的属性

value  给name属性值对应的javaBean中的属性 设置的值

-->

<bean id="HelloSpring" class="cn.bdqn.spring.HelloSpring">

<property name="who"  value="spring"></property>

</bean>

</beans>

编写测试类

编写测试类,代码如下:

package cn.bdqn.test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.bdqn.spring.HelloSpring;

public class Test {

public static void main(String[] args) {

//           创建Spring 的IOC容器对象

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

/*          从IOC容器中获取Bean实例 "HelloSpring"是我们applicationContext.xml中配置的id属性的值*/

HelloSpring bean = (HelloSpring)context.getBean("HelloSpring");

//           调用print方法

bean.print();

}

}

Spring第一个helloWorld的更多相关文章

  1. 在IDEA中使用Spring写一个HelloWorld

    准备工作 1.使用IDEA2018专业版, 我试了IDEA2019教育版和IDEA2020社区版,都无法顺利创建一个Spring项目,实在是恼火,一气之下,统统卸载掉. 重装了一个IDEA2018专业 ...

  2. Spring Boot 《一》开发一个“HelloWorld”的 web 应用

    一,Spring Boot 介绍 Spring Boot不是一个新的框架,默认配置了多种框架使用方式,使用SpringBoot很容易创建一个独立运行(运行jar,内嵌Servlet).准生产级别的基于 ...

  3. 使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclips ...

  4. 第一个spring简单的helloworld

    spring 是一个开源的框架 也是轻量级框架 1.导入jar包 spring的版本 4.0 目录: spring-framework-4.0.0.RELEASE-libs 下的jar  spring ...

  5. 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...

  6. 用Spring3编写第一个HelloWorld项目

    第一个HelloWorld程序 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclipse IDE的操作 如果你还没有设置好环境 ...

  7. 跟着刚哥学习Spring框架--创建HelloWorld项目(一)

    1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...

  8. SpringMVC基础入门,创建一个HelloWorld程序

    ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...

  9. [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/40142771 maven官网:http://maven.apache.org/ 学习视 ...

随机推荐

  1. mysql常用增删改查命令(纯纪录.orm用得基本功都没了。)

    更新表数据: update table_name set xxx=xxx where condition; 增加字段: alter table table_name add field type ot ...

  2. delphi 通过事务插入数据

    orsn1.StartTransaction; try qry1.Sql.Clear; qry1.Sql.Text:=' select * from log '; qry1.Open; qry1.In ...

  3. 【题解】ID分配

    题目描述 您正在处理要为每个客户端分配唯一ID的特定系统的后端.但是,系统是分布式的,并且有许多组件,每个组件都必须能够为客户端分配ID.换句话说,您希望每个组件都使用尽可能少的组件之间的通信来分配I ...

  4. BZOJ1785[USACO 2010 Jan Gold 3.Cow Telephones]——贪心

    题目描述 奶牛们建立了电话网络,这个网络可看作为是一棵无根树连接n(1 n 100,000)个节点,节点编号为1 .. n.每个节点可能是(电话交换机,或者电话机).每条电话线连接两个节点.第i条电话 ...

  5. mvc 验证登录

    很多时候,我们需要多个页面验证用户是否登录 有2中方法. 一种是继承 Attrbuite属性,添加验证,这个可以网上搜索. 我一般使用下面的方式 创建BaseWebController继承Contro ...

  6. day24 异常处理

    程序一旦发生错误,就从错误的位置停下不在执行后面的内容一般可能预估但是无法处理的问题可以用异常处理进行操作异常处理后会继续执行后面的代码 try: # 写在try中的语句是一定执行的 ret = in ...

  7. 自学Linux Shell11.6-退出shell

    点击返回 自学Linux命令行与Shell脚本之路 11.6-退出shell shell运行的每一个命令都是使用 退出状态码 告诉shell它已经运行完毕.退出状态码是一个0~255的整数值,在命令结 ...

  8. 部署kubernetes1.8.4+contiv高可用集群

    原理和架构图参考上一篇,这里只记录操作步骤.由于东西较多,篇幅也会较长. etcd version: 3.2.11 kube version: 1.8.4 contiv version: 1.1.7 ...

  9. zookeeper安装和使用(Windows环境)

    zookeeper安装和使用(Windows环境) 2017年11月27日 10:36:07 董昊炘的博客 阅读数:14785 标签: zookeeperwindows   zookeeper 一.简 ...

  10. 洛谷 P3956 棋盘(BFS)

    传送门:Problem P3956 https://www.cnblogs.com/violet-acmer/p/9827010.html 题解: BFS 相关变量解释: color[maxn][ma ...