在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Java問答
賤人曾 回答

問題解決了,具體過程如下:

1.在contextInitialized中添加:

UDPThread udpThread = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContextEvent.getServletContext()).getBean(MyBean.class);

2.在web.xml中添加:

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>cn.env.web.util.UDPServer</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/config/Spring-*.xml</param-value>
  </context-param>

參考stackoverflow寫的第一步,另外還需要配置web.xml,否則tomcat無法啟動:鏈接描述

刮刮樂 回答

java8的Clock,正常運行的時候注入system,測試的時候注入fixed

逗婦惱 回答

為啥不用現(xiàn)成的java.util.LinkedList?

空痕 回答

可以用多版本控制,每人用不一樣的版本號
<dubbo:reference id="barService" interface="com.foo.BarService" version="張三的" />
<dubbo:reference id="barService" interface="com.foo.BarService" version="李四的" />

別傷我 回答

api安全設(shè)計、精簡思想,提高安全性,符合rest api設(shè)計風(fēng)格,加一個router而已,對效率影響微乎其微。現(xiàn)在各大公司都紛紛開始使用這種方式了。

想象一下你的app有一萬個業(yè)務(wù),你需要一萬個接口嗎?維護成本怎么算,重構(gòu)怎么算,迭代怎么看,code reviewer 怎么說?這些問題都會冒出來的,現(xiàn)在一個統(tǒng)一入口,統(tǒng)一路由,一目了然。
再比如你抓取某app的數(shù)據(jù),發(fā)現(xiàn)他們的api好多啊,而且請求頭、參數(shù)什么的全部暴露出來了,安全性不高的api基本就是羊毛黨的口頭肉,統(tǒng)一API入口后,會發(fā)現(xiàn)想要拼接模擬api的難度系數(shù)上升了。

拼未來 回答

冪等概念值得了解

  1. 冪等令牌:客戶端對同一個請求的多次嘗試生產(chǎn)唯一標識;
  2. 數(shù)據(jù)庫表里面對冪等令牌的列做唯一性約束,多個相同冪等令牌保存就會報錯。
尋仙 回答

你的環(huán)境是 prod 還是 test

詆毀你 回答

解決了,在索引里的模板用path_match或者match指定字段,設(shè)置mapping

熊出沒 回答

因為你有換行符 .只匹配所有非換行字符 [.\S\s]* 匹配所有

圖片描述

傲寒 回答

把配置文件刪掉重裝一下把
C:\Users\suiwei\IntelliJIdea14 這個文件夾

執(zhí)念 回答

文件沒有引入進去,

不能直接在 web.xml 直接配置(解決方案是 import 引入)

具體原因,還待研究;

鐧簞噯 回答

對, 如果需要加上事務(wù)的話, 可以試下通過 AopContext.currentProxy() 獲取到代理對象, 然后再調(diào)用do2.

尐飯團 回答

對樓上的答案稍微補充一點吧,為什么基礎(chǔ)數(shù)據(jù)類型(String不是基礎(chǔ)數(shù)據(jù)類型)可以不用new的形式實例化一個對象。主要原因有兩個,一個是因為快,可以被優(yōu)化,另一個是因為方便(被大量的使用),增加代碼可讀性。
比如String a = "a",String b = "a", 因為String類有個本地方法會檢測此字符串存不存在在常量池,所以a==b為true。反之new出來的就會為false。

好了,以上點到為止。如果題主仍有興趣了解下去的話,可以百度一下java的自動裝箱拆箱機制,大致看一下,可以對java理解的更深一些。
最后再貼一道題:
int a = 1;
Integer b = 1;
Integer c = Integer.valueOf(1);
Integer d = new Integer(1);
請問打印 abcd兩兩互相 == 輸出什么。

解夏 回答

mvn dependency:tree -DskipTests

看下結(jié)果就知道了

柚稚 回答

個人理解空間復(fù)雜度為O(1)的歸并排序是指內(nèi)存方面的空間復(fù)雜度,而忽略了堆棧里的O(logN)的空間復(fù)雜度(畢竟不在同一個空間)

//空間復(fù)雜度為O(1)的歸并排序
#include <iostream>
using namespace std;

void reverse_array(int a[], int n) {
    int i = 0;
    int j = n - 1;
    while (i < j) {
        swap(a[i], a[j]);
        ++i;
        --j;
    }
}

void exchange(int a[], int length, int length_left) {
    reverse_array(a, length_left);
    reverse_array(a + length_left, length - length_left);
    reverse_array(a, length);
}

void Merge(int a[], int begin, int mid, int end) {
    while (begin < mid && mid <= end) {
        int step = 0;
        while (begin < mid && a[begin] <= a[mid])
            ++begin;
        while (mid <= end && a[mid] <= a[begin]) {
            ++mid;
            ++step;
        }
        exchange(a + begin, mid - begin, mid - begin - step);
    }
}

void MergeCore(int a[], int left, int right) {
    if (left < right) {
        int mid = (left + right) / 2;
        MergeCore(a, left, mid);
        MergeCore(a, mid + 1, right);
        Merge(a, left, mid + 1, right);
    }
}

void MergeSort(int a[], int length) {
    if (a == NULL || length < 1)
        return;
    MergeCore(a, 0, length - 1);
}

int main() {
    int a[] = {1,0,2,9,3,8,4,7,6,5,11,99,22,88,11};
    int length = sizeof(a) / sizeof(int);
    MergeSort(a, length);
    
    for (int i = 0; i < length; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}

我的做法是使用promise來處理多個上傳請求,然后每個上傳請求完成后返回地址。
全部上傳完成后在請求一次,保存這幾條地址到數(shù)據(jù)庫。

promisify.js:

module.exports = (api) => {
    return (options, ...params) => {
        return new Promise((resolve, reject) => {
            api(Object.assign({}, options, { success: resolve, fail: reject }), ...params);
        });
    }
}

我封裝的上傳函數(shù)upload,放在network.js中:

function upload(options) {
    var url = options.url,
        path = options.path,
        name = options.name,
        // data = options.data,
        extra = options.extra,
        success = options.success,
        progress = options.progress,
        fail = options.fail

    console.log("upload url:" + url)
    const uploadTask = wx.uploadFile({
        url: url,
        filePath: path,
        name: name,
        formData: extra,
        success: function (res) {
            console.log(res);

            var data = res.data
            try {
                data = JSON.parse(res.data)
                console.log(data)
            }
            catch (e) {
                console.log(data)
                throw(e)
            }

            if (res.statusCode == 200 && data.code == 1000) {
                if (success) {
                    success(data)
                }
            }
            else {
                if (fail) {
                    fail(data)
                }
            }

        },
        fail: function (res) {
            console.log(res)
            if (fail) {
                fail(res)
            }
        }
    })

    uploadTask.onProgressUpdate((res) => {
        console.log('上傳進度', res.progress)
        console.log('已經(jīng)上傳的數(shù)據(jù)長度', res.totalBytesSent)
        console.log('預(yù)期需要上傳的數(shù)據(jù)總長度', res.totalBytesExpectedToSend)
        if (progress) (
            progress(res)
        )
    })
}

module.exports = {
    upload: upload
}

上傳:

const network = require("../../utils/network.js")
const promisify = require("../../utils/promisify.js")

//轉(zhuǎn)為promise對象
const upload = promisify(network.upload)


//上傳函數(shù)
uploadMultiImage: function (paths) {
    let z = this
    
    let url = '...'

    const promises = paths.map(function (path) {
        return upload({
            url: url,
            path: path,
            name: 'file',
            extra: {},
        })
    })

    wx.showLoading({
        title: '正在上傳...',
    })
    
    Promise.all(promises).then(function (datas) {
        //所有上傳完成后
        
        wx.hideLoading()

        // 服務(wù)器返回的路徑
        let paths = datas.map(data => {
            return data.data
        })

        // 保存,這里可以選擇發(fā)送一個請求,保存這幾條路徑
        images = images.concat(paths)
        z.setData({
            images: images
        })
    }).catch(function (res) {
        wx.hideLoading()
        util.handleFail(res)
    })
}
小眼睛 回答

具體還是得看需求,時間類型和日期類型不一樣的