# Spring OSGI入门(1) Hello World | 大染志
什么是OSGI，他是一个动态组件、服务模型，简单得说就是在运行程序的时候，你可以动态安装、卸载、开始、停止服务。达到动态配置管理的功能，大大增加程序的灵活性。在Eclipse中就用到了OSGI，eclipse自带了一个osgi容器Equinox用来运行和管理OSGI相关的功能。 Spring osgi是springsource基于spring framework开发的OSGI框架，继承了sprin

大染志

Junv's blog

# Spring OSGI入门(1) Hello World

发表于 2012-01-09 更新于 2026-08-04

什么是OSGI，他是一个动态组件、服务模型，简单得说就是在运行程序的时候，你可以动态安装、卸载、开始、停止服务。达到动态配置管理的功能，大大增加程序的灵活性。在Eclipse中就用到了OSGI，eclipse自带了一个osgi容器Equinox用来运行和管理OSGI相关的功能。

Spring osgi是springsource基于spring framework开发的OSGI框架，继承了spring的特性，当然使用spring osgi的时候也需要导入spring framwork,现在spring osgi 已经变成了Eclipse 的gemini blueprint项目。由于本人也在学习之中，具体的细节我也不太清楚，希望与各位分享讨论。

这个实例文章，我们将运行一个简单的Spring osgi示例。首先我们需要建立一个项目用来提供Spring osgi运行相关的类库，我们采用maven来获取类库，maven的操作就不多讲了。这里只是涉及简单操作。

> 这个程序我所用到的所有资源：

> Eclipse 3.7

> Java SDK 1.6

> Maven 3.0、m2e插件

> Spring framework 3.0 、spring source tool 插件

> Spring osgi 1.2.1

下面我们就开始一步一步的操作：

依次点击File–>New–>Project–>选中General下面的Project(建立常规项目)

弹出新建项目对话框里面，在项目名称里面填入SpringDMTarget,点击Finish结束。

在项目根目录下创建一个target目录，并创建一个pom.xml文件，创建成功后，项目目录如下：

由于pom文件里面的依赖关系很多，这里就不一一列出了。下面贴出源文件：

pom （点击下载）

你需要做的就是改变其中一行，把它改成你的电脑的SpringDMTarget项目target的绝对路径：

> <taget-platform.root>D:javaSpring-DM-Targettarget</taget-platform.root>

然后选中pom.xml右键点击run as –>Maven install 即可开始运行maven，如果本地没有需要的包，maven会自动下载。等待一段时间后（时间长短由网速快慢而定）。只要看到控制台显示** BUILD SUCCESS** 则表明maven 已经成功下载并将包复制到目标目录了。选中项目，右键点击refresh即可看到target目录下已经下载好了相关的包。

接下来我们就需要配置运行环境了。依次点击Windows–>Preferences–>Plug in Development–>Target Platform 出现如下界面

点击Add按钮，新建一个目标运行环境。选择Nothing:Start with an empty tarfget defination.点击Next,在这个对话框中Name属性行填入对运行环境的命名：我们就填Spring DM,点击右边的Add按钮，弹出Add Content对话框,

选择Directory点击Next，在下页对话框点击Browse 从电脑中找到SpringDMTagret项目的target目录。完成后将看到，目录中的包已经全部导入了，点击Finish。选中我们新建的运行环境。

点击OK保存修改。

然后配置我们的项目运行选项，我们需要以Osgi Framework形式运行。选中项目，邮件点击Run As–>Run configurations,进入页面

选中 OSGI Framework,右键选择New ,我们可以看到系统已经默认将target platform中所有的包已经选中了。点击RUN，即可运行了。如果出现如下界面即说明运行成功了。

你可以在eclipse 命名行中输入ss查看所有服务运行状态。

大家也注意到了，上面的那两行红色的字，

    1

他提示我们Log4j没有正确配置，下面我们将修复这个“Bug”，各位请看第二讲吧。

Spring OSGI入门 Hello World(2) 处理Log4j “WARN No appenders could be found for logger”

0%