分类 技术 下的文章

Nginx的安装:https://zhangguoli.cn/linux-nginx-install.html

假设有3台服务器,分别是:
A : 10.10.1.1 Nginx
B : 10.10.6.2:8090 bbb
C : 10.10.6.3:8086 ccc
没有配置Nginx代理前,B访问地址是 10.10.6.2:8090/bbb ,C的访问地址是10.10.6.3:8086/ccc
配置代理之后, B、C的访问地址分别是10.10.1.1/bbb ,10.10.1.1/ccc

修改nginx.conf

文件位置:./nginx/conf/nginx.conf

1. 在http和server节点分别include配置文件






- 阅读剩余部分 -

  1. 要解决的问题(背景)

有一些功能需要应用到程序的多个地方但是又不想在每个业务点明确的调用它,比如日志,安全和事务管理.

  1. 横切关注点

散布于应用中多处的功能被称为横切关注点,简单来说就是影响应用多处的功能,比如日志.

  1. AOP可以实现横切关注点和他们所影响的对象间解耦

[图:日志系统在各个业务流程中的位置]

面向切面编程的使用步骤:

`定义通用的功能`,`定义这个功能以何方式在何处用`

横切关注点可以被模块化为特殊的类,这些类被称为切面(aspect).

这样做可以使关注点集中到一个地方,其次业务代码更简洁,主要关注点和次要关注点的代码分开在不同的位置.

AOP相关的术语

环境:Nginx日志报错说找不到favicon.ico文件

修改Nginx的配置文件nginx/conf/nginx.conf

  1. 如果原来Nginx已经配置了 root /home/wwwroot,直接把favicon.ico文件放到root对应的目录下即可
  2. 也可以单独设置 favicon.ico文件的路径
    location ~ ^/favicon\.ico$ {
        root    /home/nginx-assets/img;
    }

这样把favicon.ico放到/home/nginx-assets/img也可以实现效果,如下图:

张国利博客

运行时根据激活的Profile决定创建哪个bean

一、配置不同的profile

Spring 3.1只能用在类级别上

假设开发环境(dev)下返回10,生产环境(prod)返回1000。

@Configuration
@Profile("dev")
public class devConfig {
    @Bean
    public int num() {
        return new Integer(10);
    }
}
@Configuration
@Profile("prod")
public class prodConfig {
    @Bean
    public int num (){
        return new Integer(1000);
    }
}

- 阅读剩余部分 -

1.对象:以{开始,以}结束,包含一系列非排序的名称/值对,每个非排序的名称/值对之间以,分区.
2.名称/值之间以:分开

3.可以是字符串,数值,对象,布尔值,有序列表,null
4.字符串:使用双引号括起来
5.数值:正数,负数,0,小数,用e或E表示的指数
6.布尔值:true或false
7.有序列表:用[ ]括起来,多个之间用,区分

更详细的定义可以查看RFC 4627JSON官网

上面的内容可以总结为下面这幅图

JSON-张国利博客






- 阅读剩余部分 -

package junit;

import static org.junit.Assert.*;

import org.junit.*;

/**
 * Created by guoli on 2017/4/18 0018.
 * aW1laWxpZ2VAZ21haWwuY29tCiAgICAgcXE6Mjg5MTY4NTEKICAgIHpoYW5nZ3VvbGkuY24=
 */
public class FlowTest {

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        System.out.println("BeforeClass...");
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        System.out.println("AfterClass...");
    }

    @Before
    public void setUp() throws Exception {
        System.out.println("Before...");
    }

    @After
    public void tearDown() throws Exception {
        System.out.println("After...");
    }

    @Test
    public void test1() throws Exception {
        System.out.println("test1.....");
    }

    @Test
    public void test2() throws Exception {
        System.out.println("test2.....");
    }
}

- 阅读剩余部分 -