首页 文章 精选 留言 我的

精选列表

搜索[环境部署],共10000篇文章
优秀的个人博客,低调大师

Spring部署步骤

其实也就那么几步:添加jar包;写配置文件;写相应的java类。当然,如果 需要和Struts2.0集成,还是有几个地方需要多加注意的。 1、jar包 可以单独加Spring-web.jar、Spring-aop.jar这些包,也可以加一个总包Spring.jar。只要包含需要用到的类就 行。 如果需要Spring和Struts2.0集成,记得加上struts2-spring-plugin.jar。 2、写配置文件 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" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="BASIC" class="common.action.BasicAction"></bean> </beans> 如果与Struts集成,记得在web.xml里写上,声明由Spring来做类管理 <!-- 以下是Spring的监听器定义 --> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <!-- 以上是Spring的监听器定义 --> 还可以加一行,定义applicationContext.xml的位置或名称。*是通配符。 <!-- 以下是Spring配置文件位置的定义 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext_*.xml </param-value> </context-param> <!-- 以上是Spring配置文件位置的定义 --> 3、java类 java类的编写只有一条需要注意:要通过Spring来注入的属性,需要在类中写明getter和setter方法。比如 applicationContext.xml中定义了: <bean id="BASIC" class="common.action.BasicAction"> <property name="errorbean" ref="eb"/> </bean> <bean id="eb" class="common.bean.ErrorBean"></bean> 在BasicAction.java中就必须要有如下定义,否则Spring是要报错的。 private ErrorBean errorbean; public ErrorBean getErrorbean() { return errorbean; } public void setErrorbean(ErrorBean errorbean) { this.errorbean = errorbean; } 按上述步骤配置好之后,Spring的ioc功能应该是可以正常使用了。其它方面,如aop等,另外记录吧 本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/799058,如需转载请自行联系原作者

优秀的个人博客,低调大师

Docker部署CouchDB

CouchDB介绍: CouchDB是Apache组织发布的一款开源的、面向文档类型的NoSQL数据库。由Erlang编写,使用json格式保存数据。CouchDB以RESTful的格式提供服务 可以很方便的对接各种语言的客户端 CouchDB最大的竞争对手就是熟悉的MangoDB。它们的不同点比较会在另外一篇里面写入 CouchDB 目标是做下一代的Web应用存储系统 CouchDB下载,安装: 官网:http://couchdb.apache.org/ 目前只有2.0.0版本 2016年9月份 CouchDB 安装完成后自动启动,默认是5984 Docker下的安装配置: 1、先创建一个couchdb容器,并赋值给couch1 1 2 COUCH1=$(dockerrun-d-p5984- v /var/lib/couchdb couchdb) root@ubuntu:~ #echo$COUCH1 1 6d708f72e25e9f0d693aa5a8ce5afd1a61e945355f728f409bc5a90676e0524c 2、给couchDB中插入数据 要确保你的HOST是可用的 1 2 3 $HOST=localhost #这里如果localhost不行,就更换成主机ip $URL= "http://$HOST:$(dockerport$COUCH15984|grep-o'[1-9][0-9]*$')/_utils/" $ echo "Navigateto$URLinyourbrowser,andusethecouchinterfacetoadddata" 操作结果: 1 2 3 4 5 6 7 root@ubuntu:~ #HOST=123.xx.xx.x8#这里是公网ip就不显示出来了 root@ubuntu:~ #URL="http://$HOST:$(dockerport$COUCH15984|grep-o'[1-9][0-9]*$')/_utils/" root@ubuntu:~ #dockerport$COUCH15984#这里映射到了宿主机32768端口,并监听所有ip 0.0.0.0:32768 root@ubuntu:~ #echo"Navigateto$URLinyourbrowser,andusethecouchinterfacetoadddata" Navigatetohttp: //123 .xx.xx.x8:32768 /_utils/ in yourbrowser,andusethecouchinterfacetoadddata #打开浏览器输入http://123.xx.xx.x8:32768/_utils/将会显示couchDB的页面 创建数据库账号 控制台页面的左边的主要部分列出了当前数据库,并提供了一个 Create Database … 的操作;右边的侧边栏呢,从上到下分别提供了 工具、 文档 、 诊断 和 当前数据库 3个菜单。最右下角是版本号和一句话:“Welcome to Admin Party! Everyone is admin. Fix this”,什么意思呢?就是说ConchDB默认用户都是admin,对于用惯了关系型数据库的我们,本能的就会感觉这并不安全,没错,其实就是不安全!!!!,所以,点击 Fix this 来新建一个用户吧。 注意:如果使用中发现某些按钮是灰色的或者 Compact & Cleanup 一直在转圈等待,请先看看自己是不是管理员。 点击Create Database …并输入一个数据库名称就可以新建一个数据啦 创建成功后会跳转到当前新建的数据库,如果我们返回Overview页面就会发现刚才新建的数据库已经被添加到列表中了。 CouchDB的增删改操作【INSERT/UPDATE/DELETE】 在新建的数据库的管理页面中点击New Document,我们就可以新建一个文档,其中会包含一个默认的Id字段作为唯一标识,我们可以不用管他,同时也可以点击Add Field来新增字段,这里假设我们新增一个人,字段如下图: 点击右面的“source”按钮,就能看到json格式的内容 点击上面的“Save doucement”来保存数据,然后再主页就能看到我们新创建的数据库了 双击Field或者Value列的单元格可以更改字段名或字段值 点击右侧的绿色对勾按钮后,该字段的值将会被保存,此时切换到Source标签就可以看到json格式的数据 编辑完成后点击上方的Save Document按钮就可以将刚才的json数据保存到数据库中,保存成功后系统会自动为我们添加一个rev字段,这个字段代表当前文档的版本号 更新操作呢也比较简单,只需要单击当前文档的Key或者双击Value就可以进入编辑页面,在编辑页面中不但能修改字段的Key/Value,还可以新增和删除字段,同样,点击Save Document即可保存当前修改,同时,我们可以注意到,该文档的rev值已经发生了变化,这代表该文档的版本号已经被更新 同样,进入当前记录的详情页我们就可以看到Delete Document按钮,点击之后当前文档就会被删除。 但是,值得注意的是,当我们使用Delete Document操作将文档删除后,表面看是没有数据了,但是该数据仍然占用了那么多空间,并没有减少,如下图: 这时我们需要进入数据库详情页,使用Compact & Cleanup…中的Compact Database操作来清理被占用的空间,如果发现此功能点击之后一直在转圈等待,去看看自己是不是管理员用户吧。 使用Docker再次创建一个couchDB 1 COUCH2=$(dockerrun-d-p5984--volumes-from$COUCH1couchdb) 使用浏览器浏览第二个数据库 1 2 3 HOST=localhost #这里如果localhost不行,就更换成主机ip URL= "http://$HOST:$(dockerport$COUCH25984|grep-o'[1-9][0-9]*$')/_utils/" echo "Navigateto$URLinyourbrowser,andusethecouchinterfacetoadddata" 这里可以看到数据已经同步到couchdb的第二台上面临 使用 cURL 通过 RESTful API 对 CouchDB 进行增删查改 Tips: 对cURL还不太了解的亲们可以搜索下,很好用的工具,可以从这里下载:http://curl.haxx.se/download/ 注意:为了测试方便,我们删除原来的数据库。 前面已经介绍过,CouchDB支持使用RESTful API的方式来对数据进行操作,例如,我们在浏览器中输入http://x.x.x.x:32768/demo就可以查看demo数据库中详细信息。如图: 下面是借鉴别人的操作流程,自己没有时间敲了,大家随意感受一下CouchDB流畅的RESTful操作方式: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 #获取CouchDB相关信息 curl-XGEThttp: //127 .0.0.1:5984 { "couchdb" : "Welcome" , "uuid" : "a853c053a5a54a4d3ccbaad0d9ffd3b0" , "version" : "1.6.1" , "vendor" :{ "version" : "1.6.1" , "name" : "TheApacheSoftwareFoundation" }} #创建demo数据库(需要admin权限,参照下一条命令) curl-XPUThttp: //127 .0.0.1:5984 /demo { "error" : "unauthorized" , "reason" : "Youarenotaserveradmin." } #使用用户名密码登录CouchDB,并创建demo数据库 curl-XPUThttp: //username :password@127.0.0.1:5984 /demo { "ok" : true } #查看所有数据库 curl-XGEThttp: //127 .0.0.1:5984 /_all_dbs [ "_replicator" , "_users" , "demo" ] #查看demo数据库相关信息 curl-XGEThttp: //127 .0.0.1:5984 /demo { "db_name" : "demo" , "doc_count" :0, "doc_del_count" :0, "update_seq" :0, "purge_seq" :0, "compact_running" : false , "disk_size" :79, "data_size" :0, "instance_start_time" : "1452000207199340" , "disk_format_version" :6, "committed_update_seq" :0} #向demo数据库中添加一个文档(自动生成Id),注意:windows下需要使用Content-Type:application/json的HttpHeader curl-H "Content-Type:application/json" -XPOSThttp: //127 .0.0.1:5984 /demo -d{\"name\":\"fooly\"} { "ok" : true , "id" : "3ebb59dd78ff448f283f48817800321c" , "rev" : "1-0e4ea534f2c1e7f05e21804b5f2f7a71" } #查看demo数据库中的所有文档 curl-XGEThttp: //127 .0.0.1:5984 /demo/_all_docs { "total_rows" :1, "offset" :0, "rows" :[ { "id" : "3ebb59dd78ff448f283f48817800321c" , "key" : "3ebb59dd78ff448f283f48817800321c" , "value" :{ "rev" : "1-0e4ea534f2c1e7f05e21804b5f2f7a71" }} ]} #获取一个uuid curl-XGEThttp: //127 .0.0.1:5984 /_uuids { "uuids" :[ "3ebb59dd78ff448f283f4881780033c0" ]} #向demo数据库中添加一个文档(使用获取到的uuid作为Id) curl-H "Content-Type:application/json" -XPUThttp: //127 .0.0.1:5984 /demo/3ebb59dd78ff448f283f4881780033c0 -d{\"name\":\"momo314\"} { "ok" : true , "id" : "3ebb59dd78ff448f283f4881780033c0" , "rev" : "1-eb393d36ac1ad38ada8361d94fc5d0b6" } #更新指定Id的文档(但是失败了,因为CouchDB是按版本提交的,同一个源提交多次会造成一定的混乱。所以,需要指定文档版本进行控制。) curl-H "Content-Type:application/json" -XPUThttp: //127 .0.0.1:5984 /demo/3ebb59dd78ff448f283f4881780033c0 -d{\"name\":\"momo314\",\"age\":18} { "error" : "conflict" , "reason" : "Documentupdateconflict." } #更新指定Id和指定版本的文档 curl-H "Content-Type:application/json" -XPUThttp: //127 .0.0.1:5984 /demo/3ebb59dd78ff448f283f4881780033c0 -d{\"_rev\":\"1-eb393d36ac1ad38ada8361d94fc5d0b6\",\"name\":\"momo314\",\"age\":18} { "ok" : true , "id" : "3ebb59dd78ff448f283f4881780033c0" , "rev" : "2-5d081e17588c03c27340035e420edecd" } #获取指定Id的文档内容 curl-XGEThttp: //127 .0.0.1:5984 /demo/3ebb59dd78ff448f283f4881780033c0 { "_id" : "3ebb59dd78ff448f283f4881780033c0" , "_rev" : "2-5d081e17588c03c27340035e420edecd" , "name" : "momo314" , "age" :18} #删除指定Id和rev版本号的文档 curl-XDELETEhttp: //username :password@127.0.0.1:5984 /demo/3ebb59dd78ff448f283f4881780033c0 ?rev=2-5d081e17588c03c27340035e420edecd { "ok" : true , "id" : "3ebb59dd78ff448f283f4881780033c0" , "rev" : "2-5d081e17588c03c27340035e420edecd" } #查看demo数据库中的所有文档(刚才的文档确实被删除掉了) curl-XGEThttp: //127 .0.0.1:5984 /demo/_all_docs { "total_rows" :1, "offset" :0, "rows" :[ { "id" : "3ebb59dd78ff448f283f48817800321c" , "key" : "3ebb59dd78ff448f283f48817800321c" , "value" :{ "rev" : "1-0e4ea534f2c1e7f05e21804b5f2f7a71" }} ]} #删除demo数据库(需要admin权限,参照下一条命令) curl-XDELETEhttp: //127 .0.0.1:5984 /demo { "error" : "unauthorized" , "reason" : "Youarenotaserveradmin." } #使用用户名密码登录CouchDB,并删除demo数据库 curl-XDELETEhttp: //username :password@127.0.0.1:5984 /demo { "ok" : true } #查看所有数据库(demo数据库确实被删除掉了) curl-XGEThttp: //127 .0.0.1:5984 /_all_dbs [ "_replicator" , "_users" ] 本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1911814,如需转载请自行联系原作者

优秀的个人博客,低调大师

saltstack部署openstack

172.25.254.111 salt-master服务器 172.25.254.112OpenStack控制节点 ps: 下面都在salt-master操作 1.安装插件: yum install salt-cloud python-libcloud 2.创建salt-cloud配置文件: mkdir /etc/salt/cloud.providers.d/ vim /etc/salt/cloud.providers.d/openstack.conf my-openstack-config: # Set the location of the salt-master # minion: master: 172.25.254.112 # Configure the OpenStack driver # identity_url: http://172.25.254.111:5000/v2.0/tokens compute_name: nova protocol: ipv4 compute_region: RegionOne # Configure Openstack authentication credentials # user: demo password: demo # tenant is the project name tenant: demo driver: openstack provider: openstack # skip SSL certificate validation (default false) insecure: false 3.查看镜像列表: salt-cloud --list-images openstack #查看镜像列表 salt-cloud --list-size openstack #查看云主机类型 4.创建saltstack虚拟机模板文件: vim /etc/salt/cloud.profiles.d/web.conf web-node: #虚拟机模板名称 provider: my-openstack-config #前面配置文件定义的 size: m1.tiny #云主机类型 image: cirros #镜像名称 ssh_key_file: /root/.ssh/id_rsa #公钥文件 ssh_key_name: mykey #密钥对名称 ssh_interface: private_ips networks: - fixed: - 69200e49-0f8b-47b6-9bb5-2db9bca9a393 #网络的ID minion: #下面是自动给虚拟机安装salt-minion并配置 master: 172.25.254.111 grains: role: webserver-01 4.通过saltstack创建Openstack虚拟机: salt-cloud -p web-node web-test1 -l debug -p: 虚拟机模板名称 web-test1: 创建虚拟机的名称 -l debug: 打印debug 本文转自铁骑传说51CTO博客,原文链接: http://blog.51cto.com/ybzbfs/1957182,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册