Spring程序读取Cloud Foundry服务信息示例代码

Cloud Foundry提供的服务实例本质上就是访问信息:IP、端口、用户名、密码等,使用的过程当然可以写死在代码或配置文件里,但是高级一点儿的办法当然是让程序可以自动按照环境适配服务实例信息,切换数据库,消息中间件,云存储等代码连接的位置。这篇先写一下在web.xml里配置了listener的spring程序如何自动获取CF的服务实例信息,示例代码由Maven管理。

在web.xml里配置了以下listener的spring程序,PaaS里绑定的服务信息可以被自动获取,只需要在context配置文件中使用指定的语法定义bean即可。

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

比如,要使用redis服务,只需在context配置文件中定义如下:

<cloud:redis-connection-factory id="redisConnectionFactory"/>

然后在程序中使用下面的代码,即可获得绑定了的redis服务信息:

@Autowired(required=false) RedisConnectionFactory redisConnectionFactory;
Hostname = ((JedisConnectionFactory) redisConnectionFactory).getHostName();
Port = ((JedisConnectionFactory) redisConnectionFactory).getPort());

针对redis,这个bean可以直接通过spring-data-redis进行操作。

由于Spring与Cloud Foundry及其相关服务(如Redis)的兼容问题,不同版本的spring库可能导致兼容性问题,比如spring 3.2.8和spring-cloud 1.0.0放在一起会导致绑定了redis服务的程序无法在PaaS上启动。确保可兼容的版本可参见样例程序(是个Maven工程)的pom.xml。

时间: 2024-10-14 09:03:15

Spring程序读取Cloud Foundry服务信息示例代码的相关文章

(四)整合spring cloud云服务架构 - particle-common-framework代码介绍

上一篇我们介绍了spring cloud云服务架构 - particle云架构代码结构,简单的按照几个大的部分去构建代码模块,让我们来回顾一下: 第一部分: 针对于普通服务的基础框架封装(entity.dao.service.controller.api)等 第二部分: spring cloud通用微服务项目,可以监控左右微服务,当然,本身自己也是微服务. 第三部分: 针对于框架内所有组件的封装,可以植入任何的模块项目中. 第四部分: 自身项目的微服务业务,比如:会员模块.消息模块.资金模块.订

C# WebSocket 服务端示例代码 + HTML5客户端示例代码

WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Threading; using System.Text.RegularExpressions; using System.Security.Cryptography; na

标准服务接口示例代码

第一步:定有接口 标准的服务接口通常包含 添加或更新单条记录: ServiceResult AddOrUpdate(Entity model) 批量添加或更新单条记录: ServiceResult AddOrUpdate(IEnumerable<Entity> soucre) 获取单条记录: Entity GetSingle(long? id) 获取列表记录:List<Entity> GetList(Expression<Func<Entity, bool>>

Spring Cloud微服务云架构代码结构

源码结构 JAVA开发.maven模块化构建.服务独立打包.分布式部署.持续集成.版本控制 从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,希望可以帮助更多的好学者.大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目.资料源码来源

spring(读取外部数据库配置信息、基于注解管理bean、DI)

###解析外部配置文件在resources文件夹下,新建db.properties(和数据库连接相关的信息) driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/dbusername=rootpassword=root 开发步骤1)创建maven工程添加web.xml添加tomcat运行环境添加jar spring-webmvc,junit,commons-dbcp,mysql添加application.xml

Spring Boot 实现RESTful webservice服务端示例

1.Spring Boot configurations application.yml spring: profiles: active: dev mvc: favicon: enabled: false datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/wit_neptune?createDatabaseIfNotExist=true&useUnicode=true&

【Cloud Foundry】Could Foundry学习(二)——核心组件分析

在阅读的过程中有不论什么问题,欢迎一起交流 邮箱:[email protected]    QQ:1494713801 Cloud Foundry核心组件架构图例如以下: 主要组件:     Cloud Controller:实质上是VMC和STS交互的server端,它收到指令后发消息到各模快,管理整个云的执行.相当于Cloud Foundry的大脑. DEA:负责处理对所部署的App的訪问请求.事实上质是打包和訪问Droplet.当中Droplet是通过Stager组件将提交的源码及Clou

Cloud Foundry技术全貌及核心组件分析

原文链接:http://www.programmer.com.cn/14472/ 历经一年多的发展,Cloud Foundry的架构设计和实现有了众多改进和优化.为了便于大家了解和深入研究首个开源PaaS平台——Cloud Foundry,<程序员>杂志携手Cloud Foundry社区开设了“深入Cloud Foundry”专栏,旨在从架构组成.核心模块功能.源代码分析等角度来全面剖析Cloud Foundry,同时会结合各行业的典型案例来讲解Cloud Foudry在具体应用场景中的表现.

Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越简单越容易上手最好.在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲.因此在我学习 Spring Boot 的时候,会写一些最简单基本的示例项目,一方面方便其它朋友以最快的方式去了解,一方面如果我的项目需要用到相