Categories
java

docker tomcat

静态资源目录在 /usr/local/tomcat/webapps

配置文件在 /usr/local/tomcat/conf/server.xml

Categories
java

apache httpd

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中

服务器根目录在/usr/local/apache2/htdocs

Categories
java

jetty

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

默认的静态资源文件夹 在/var/lib/jetty/webapps/下

添加默认根context:在/var/lib/jetty/webapps/下添加ROOT文件夹

然后在ROOT文件夹添加index.html

即可提供默认主页访问

当然也可把war包放到webapps下自动解压访问

Categories
java

spring-boot 配置文件

启动sprongboot jar 包时 有几个地方会读取配置

一是启动参数

二是启动目录下的application.yaml

三是jar包内部的application.yaml

所以其实一个jar包可以把基本功能设置

通过把配置文件 置于启动目录下 可完成运行前修改配置功能

java -jar common-server.jar –spring.config.local=application.properties

也可以通过 –spring.config.local 指定配置文件

Categories
docker

docker入门

docker 是容器化服务的实现

docker 分为三部分 镜像 本地机器 和 镜像服务中心

本地从镜像服务中心抽取镜像到本地 , 本地docker服务会维持着一个镜像管理服务。当运行期对应的镜像,就能以容器化方式启动对应的服务。

docker search nginx
向镜像中心搜索nginx的镜像

docker pull httpd
向镜像中心下载httpd镜像到本地

docker images
列出本机下载了的镜像列表

docker rmi 镜像id/name
删除下载到本地的镜像 i指的是image

docker run -d -p80:80 nginx
以daemon方式运行nginx镜像 并 指定容器的80 映射到本机的80端口

docker run -d -p8080:80 --name apache httpd
以daemon方式启动httpd镜像 并 指定容器80 映射到本地的8080端口 且起名为apache

docket run -d -p8080:80 --name apache httpd --volumes/(-v) ./app:/var/www/html/
将本地的./app 映射到 服务的 /var/www/html

docker start apache
启动指定的镜像服务

docker stop apache 
以运行时指定的name 停止 指定容器服务

docker stop 562jggs92h4ff
以容器id 停止容器服务

docker ps
列出当前运行中的容器服务 (会显示容器id 端口映射  和别名)

docker ps -a 
列出所有本机的容器服务 (包括停止了的)

docker rm 容器ID/name
删除本机容器服务


docker exec -it  CONTAINER_ID/name  /bin/sh
进入某个容器 并且 i 代表interactive交互式 输入流 和输出流 在当前shell交互
t 代表 tty 代表容器内一个终端 /bin/sh 执行某个命令 即进入shell模式


其他
docker help CMD 查看某个命令

docker inspect XXX
查看某个服务的所有情况  包括硬盘文件夹挂载信息

docker log -f XXX
一直跟踪并查看服务日志

Categories
php

laravel 部署

以phph命令运行

php arisan serve 部署命令
php artisan serve --port 8090 指定端口
php artisan servce --host 127.0.0.1 指定主机
第二种以容器方式运行

把整个项目复制到nginx 或者 apache web 网站静态资源目录
静态资源入口指向 public/index.php
Categories
java

Jenkins

jenkins 是一个服务端服务持续集成的框架,用于管理项目部署脚本。

最简单的安装方法下载 jenkins war包到本地 通过 java -jar 部署 因其内部自带netty http 服务 用网站进入jenkins 进行项目管理

 java -jar jenkins.war --httpPort=8280 

在端口8280启动jenkins服务

Categories
C#

C# 自定义windows form控件

所有C# 自定义windows form 控件继承自 UserControl 在design中设计界面 在partial class中定义自定义属性和行为

注解解析

 [Category("Text"),
         Browsable(true),
         DefaultValue(typeof(Image), null),
         Description("图标")]
        public Image Icon { get; set; }

Category 对应分类

Browsable 对应是否能看到

然后还有默认值和描述

这个注解使代码和 设计界面能连通

组件生命周期

form 打开:
•    Control.HandleCreated
•    Control.BindingContextChanged
•    Form.Load
•    Control.VisibleChanged
•    Form.Activated
•    Form.Shown
from 关闭:
•    Form.Closing
•    Form.FormClosing
•    Form.Closed
•    Form.FormClosed
•    Form.Deactivate

control ,change focus:(使用 tab ,shift + tab等等,或是调用Select,SelectNextControl,或是使用当前form的ActiveControl)
•    Enter
•    GotFocus
•    Leave
•    Validating
•    Validated
•    LostFocus

control ,change focus:(使用鼠标,或是通过调用Focus方法)
•    Enter
•    GotFocus
•    LostFocus
•    Leave
•    Validating
•    Validated

特别是load 事件 可以再InitializeComponent 绑定加载事件 然后 添加渲染后回调操作

添加自定义事件


        public delegate void PageChangeDelegate();//

        /// <summary>
        /// 当前页改变时发生的事件
        /// </summary>
        [Description("当前页改变时发生的事件"), Category("分页设置")]
        public event PageChangeDelegate PageChanged;

在具体的业务流程中调用

 private void btnFirst_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            //设置当前页
            CurrentPage = 1;

            //设置上一页、下一页是否可用以及当前页按钮字体颜色
            SetBtnPrePageAndBtnNextPage();

            //调用注册事件
            if (PageChanged != null) PageChanged();
        }
Categories
C#

C# json格式化

应用程序安装Newtonsoft.Json

序列化

 JsonConvert.SerializeObject(o);

反序列化

 JsonConvert.DeserializeObject<T>(jsonstr) ;

T为指定的泛型

反序列化为JObject

 JObject.Parse(jsonstr)
Categories
C#

C# dynamic 关键字 动态属性

C# 可以用dynamic作为动态类型的声明 然后程序可以访问其动态属性

 dynamic keyAndValue = new T();
 Console.WriteLine(keyAndValue.key)

其中key为动态属性 程序不知道keyAndValue对象是否有key属性