前言

虽然之前用过Spring,但是今天试着去搭建依然遇到了困难,而且上网找教程,很多写的是在web里使用Spring MVC的示例,官方文档里的getting start一开始就讲原理去了(可能打开的方法不对)。没办法,好不容易实验成功了,记下来免得自己以后麻烦。

添加依赖包

进入spring官网,切换到projects下点击 spring framework.官网上写的是以maven依赖的形式写的,所以可以新建一个maven项目,然后将下面的依赖加入到pom.xml里

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.0.RELEASE</version></dependency>
</dependencies>    

或者,也可以点击这个页面右上角的fork me on github,在github里下载依赖包,然后加入到项目的build path中去。

注意, spring-context只是包含了spring最核心的功能,如依赖注入,切面等。

创建spring配置文件

新建一个名为bean.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:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  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"><context:component-scan base-package="com.lcl"></context:component-scan>
</beans>

这个配置文件有几个地方需要说明一下:

1、命名空间

<beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  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">

这个是xml的语法,配置当前xml文件中的标签格式,这里配置了context和p两个命名空间。例如,配了context空间,就可以使用</context:XXX>这样的标签。
2、自动扫描组件

<context:component-scan base-package="com.lcl"></context:component-scan>

这个配置可以让spring框架自动扫描代码中用@component注解了的类,自动创建这些类的对象。

最后注意一下bean.xml要放在代码目录下,其目的是为了将bean.xml添加到classpath中。

编写代码

首先,写一个Person类作为bean类。所谓bean类,简单来说就是所有成员变量都有getter和setter方法,并且有无参构造方法的类。然后用了@Component(“person”)注解将Person类标注为一个组件,这样,就可以使用@ResourcePerson的一个实例注入给其他对象的成员里,或者使用Application类的getBean(Class)方法得到一个实例。

package com.lcl;import org.springframework.stereotype.Service;@Component("person")
public class Person {private String name;private int age;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 void info(){System.out.println("一起来吃麻辣烫!");System.out.println("name:"+getName()+" age:"+getAge());}
}

然后是A类,A类有person成员变量引用了Person的实例,我们是用spring的依赖注入来管理成员变量person的创建,为了达到这个目的,只需要将person变量用@Resource注解标注即可。

package com.lcl;import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;/*** @author luchunlong** 2015年8月27日 上午10:20:41*/
@Component
public class A {@Resourceprivate Person person;public void info(){person.setName("abc");person.setAge(123);person.info();}public static void main(String[] args){ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");A a=ctx.getBean(A.class);a.info();}}

总结

创建一个spring项目只要三步:
- 加入依赖
- 编写bean类
- 编写bean.xml

其中编写bean类时用到了@Component@Resource这两个注解

Spring开发环境搭建和第一个示例程序相关推荐

  1. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  2. java环境陪孩子_Java启蒙之路-Java开发环境搭建与第一个Java程序

    Java开发环境搭建 "工欲善其事,必先利其器",从前面的章节我们了解到,Java程序的运行过程首先编写Java程序,然后再对Java源文件编译,借助JVM运行程序.现在问题来了, ...

  3. 微信小程序开发(一):环境搭建和第一个小程序创建

    0 概览: 简介:微信小程序是微信里面的app,16年推出 竞品: 支付宝小程序 ,钉钉,美团,头条,抖音qq小程序 优点:1,在微信里面自由分享,2,不用下载app, 3,能快速的开发,使用微信的a ...

  4. 关于任哲的《嵌入式实时操作系统uC/OS II原理及应用(第二版)》开发环境搭建和第一个例子

    第一步 需要下载一个BC3.1精简版搭配书上的开发环境 .下载地址:云盘链接 提取码 0a44.这儿下载下来的bc文件夹可以 放在任何位置,楼主将其放在了C盘的根目录下. 第二步 就是文件的代码了,代 ...

  5. Spring开发环境搭建

    在spring开发中,我们要根据不同的情况来导入不同的jar包,如果我们要使用的是spring的ioc与di,那么对于ioc与di,我们只需要使用spring的核心功能. 1. beans相关 2. ...

  6. angularjs学习笔记一——了解angularjs、开发环境搭建、第一个angularjs程序

    一.什么是angularJS angularJS是基于javascript的框架,所谓框架,自然就是封装了很多功能,举个例子,使用原生javascript,如果你要写一个网页幻灯片,你可能需要几十行代 ...

  7. eclipse 关闭时progress information弹框_Spring开发环境搭建(Eclipse)

    开发环境搭建,主要包含2部分: Java安装 Eclipse安装 为易于学习,我们只安装这2个部分,对于一般开发学习也足够了.如果你有其他要安装的,酌情添加. Java安装 我们使用Java8: 下载 ...

  8. 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)

    一.项目工程说明 jeecg-p3-web       | 启动主项目 jeecg-p3-biz-demo | 插件项目     注意:项目为maven工程,采用maven方式导入eclipse等ID ...

  9. 角蜂鸟AI视觉套件1:开箱和开发环境搭建

    角蜂鸟开箱和开发环境搭建 1.开箱展示 图1 材料清单: 1.套件包含亚克力外壳.定制1080P摄像头及角蜂鸟AI视觉板卡(已拼装) 2.Type-C USB3.0导线1根 3.产品说明书卡片1张 电 ...

最新文章

  1. delphi 调用php接口_爱站权重查询 API 接口请求调用
  2. python中字符串注意事项
  3. pycharm python3.7环境_Python3+Pycharm+PyQt5环境搭建步骤图文详解
  4. Dbgview - 签名无效
  5. IIS服务器重启三种方法
  6. 计算机制图知识点,工程制图的基础知识
  7. 数学建模学习(93):方差分析、T检验、卡方分析(检验)
  8. 全网最全最稳定中文ISBN信息查询api接口
  9. oj-杭电 熊猫阿波的故事
  10. 针对谷粒商城P46 验证码图片加载出来错误503
  11. 万能地图下载器矢量标注功能特性
  12. mysql中英混合排序+Java处理多音字
  13. Date时间里的GMT是什么意思
  14. 解线性方程组的python实现(1)——高斯主元消去法
  15. PDF转word的免费工具
  16. 通俗理解同步通信与异步通信
  17. 那么这几天都是自己和工作上的事情比较零零散散
  18. MySQL插入数据与系统时间相差12小时
  19. 几百行代码写个Mybatis,原理搞的透透的!
  20. 如何在AE中快速预览?

热门文章

  1. eclipse创建folder变成package解决方案
  2. 微信小程序复制到剪切板及换行问题
  3. 面试必备:CAS无锁机制
  4. gradle sync failed——Android studio 突然就无法自动下载gradle了
  5. Android 集成支付宝支付,支付宝支付2.0
  6. mysql约束教程,MySQL 约束
  7. 4字节 经纬度_java 获取本机经纬度
  8. 信息抽取--关键句提取
  9. 预科教育计算机基础知识重点归纳,民族预科班计算机教育论文
  10. 吞吐量(TPS)、QPS、并发数、响应时间(RT)