[20151120] 최근 학습 노트
1) camel 프로 세 스 의 if else
프로 세 스 가 CamelStart - > A - > B 라 고 가정 합 니 다.
프로 세 스 시작 클래스
public class CamelStart {
public static void main(String[] args) {
ApplicationContext ctx = new FileSystemXmlApplicationContext("itmon_demo/WEB-INF/conf/spring/sys/context-route.xml");
System.out.println(ctx);
ProducerTemplate template = ctx.getBean("producerTemplate", ProducerTemplate.class);
// template.sendBody("direct://AstartData");
String str = "a";
template.sendBody("direct://AstartData", "okoko");
if(StringUtils.isBlank(str)) {
try {
template.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
ACamel1:
public class ACamel1 implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
String ret = (String) exchange.getIn().getBody();
ret = ret + "a1";
if(StringUtils.isBlank(ret)) {
System.out.println(" A 。。 " + ret);
exchange.getIn().setBody(ret);
}
}
}
ACamel2:
public class ACamel2 implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
String ret = (String) exchange.getIn().getBody();
ret = ret + "a2";
System.out.println(" A 。。" + ret);
}
}
실행 후 결 과 는:
A 프로 세 스 의 두 번 째 단계 에 들어가다.okokoa2
이 는 현재 프로 세 스 가 CamelStart - > B 로 A 에서 sendbody 를 아래로 내 려 가지 않 기 때문에 프로 세 스 가 시작 점 에 있다 고 착각 하기 쉽다 는 뜻 이다. Camel Start 가 걸 려 요.그러나 실제 상황 은 A 가 sendbody 가 없 지만 B 는 여전히 CamelStart 로부터 데 이 터 를 받는다.(이것 은 프로 세 스 설정 때문에 사실상 A 를 갔 기 때 문 입 니 다. A 는 sendbody 가 없 지만 B 는 CamelStart 에서 데 이 터 를 받 습 니 다. A sendbody 가 되면 B 는 A 처리 후의 데 이 터 를 받 습 니 다)
2) ajax 집합 형식의 데 이 터 를 프론트 데스크 에 전송
먼저 list 나 map 가 프론트 에 전 달 될 것 이 라 고 가정 하고 배경 에서 그들 을 모두 map 에 넣 은 다음 에 이 map 를 JSON 대상 으로 전환 해 야 합 니 다 ~
이 list 나 map 의 할당 이 어떤 조건 을 만족 시 켜 야 한다 면, 즉 if 에 있 습 니 다.이 럴 때 이 list 나 map 를 json 대상 으로 전환 하 는 map 의 위치 에 두 는 것 에 주의해 야 합 니 다.
만약 이 집합 형식의 데 이 터 를 if 에 넣 으 면 프론트 데스크 에서 json. key 를 통 해 얻 은 것 은 undefined 로 인해 js 가 잘못 보 고 될 것 입 니 다.그래서 일반적으로 put 의 조작 을 if 밖 에 두 는 것 을 권장 합 니 다.
3) ajax 의 간단 한 쓰기:
$.post("ajax url",params).done(function(data){
//
});//params json ~
백 스테이지 가 프론트 데스크 에 되 돌아 오 는 것 은 json 형식의 문자열 이 아니 라 맵 < String, Object > 데이터 일 수도 있 습 니 다.프론트 js 는 data. key 형식 으로 얻 을 수 있 습 니 다.프론트 데스크 톱 에서 백 스테이지 에 전 달 된 매개 변 수 는 백 스테이지 방법 에 매개 변수 가 있 고 매개 변수 이름 이 프론트 데스크 톱 에서 전 달 된 params key 와 일치 하면 이 방법의 매개 변 수 는 전 달 된 값 을 직접 받 을 수 있 습 니 다!
4) 좋 은 생각: 제출 버튼 에 대해 제출 하기 전에 검증 하려 면 전통 적 인 방법 을 제외 하고 이 단 추 를 일반 단추 로 사용 할 수 있 습 니 다. 제출 여 부 는 js 함수 의 if else 에서 진행 할 수 있 습 니 다.예 를 들 어 검사 조건 을 만족 시 키 는 If 에 들 어가 면 우 리 는 if 에 ajax 가 제출 한 논 리 를 쓸 수 있 고 else 에 서 는 제출 할 수 없 는 원인 만 제시 할 수 있 습 니 다.
5) redis 설정 만 료 시간
이것 은 듣 기 에 평범 하 겠 지, 전에 나 도 소개 한 적 이 있어.redis 의 key 만 료 시간 을 설정 하 는 것 은 필요 합 니 다. redis 를 사 용 했 으 니 캐 시 된 데 이 터 는 매우 거대 하기 때문에 모든 데 이 터 를 영구적 으로 저장 할 수 없습니다.다음은 redis 키 의 만 료 시간 을 설정 하 는 것 이 아니 라 redis 의 파 티 션 선택 이 만 료 시간 에 미 치 는 영향 을 보 여 주 는 것 입 니 다 ~
Jedis jedis = new Jedis("localhost");
jedis.select(8);
Map<String, String> map = new HashMap<String, String>();
map.put("test", "content");
map.put("test2", "content2");
jedis.hmset("map", map);
jedis.select(7);//
jedis.set("test", "cs");
jedis.expire("map", 30);
이 코드 의 본 뜻 은 매우 간단 합 니 다. 먼저 8 구역 에 맵 을 캐 시 하고 생존 시간 을 설정 한 다음 에 7 구역 으로 전환 하여 string 을 저장 합 니 다. 그러나 주의해 야 할 것 은 이 맵 을 설정 한 만 료 시간 을 구역 전환 작업 뒤에 두 는 것 입 니 다! 테스트 해 보면 8 분 구 맵 이 30s 이후 에 만 료 되 지 않 는 다 는 것 을 알 게 될 것 입 니 다!이 유 는: 당신 의 파 티 션 이 8 파 티 션 으로 전환 되 었 습 니 다. 당신 의 모든 작업 은 8 파 티 션 에 만 유효 합 니 다 ~ ~ expire 는 7 분 구 의 map 를 대상 으로 하지만 8 분 구 에 있 습 니 다. 이 설정 은 '닿 지 않 습 니 다' 이기 때문에 jedis. expire ('map', 30) 를 사용 해 야 합 니 다.이 줄 코드 를 jedis. select (7) 로 옮 깁 니 다.전에 ~
- 이 bug 는 은밀 하지만 치 명 적 입 니 다. 특히 실제 빅 데이터 의 경우 로 컬 에서 데 이 터 를 테스트 하 는 것 은 아직 알 아 볼 수 없습니다.
6) 같은 검색 상자 에 입력 하 십시오. ajax 는 배경 에 입 습 니 다. 신기 한 sql 시리즈 입 니 다.
흔히 볼 수 있 는 상황 중 하 나 는 '조회 하고 싶 은 xx 나 yy 를 입력 하 십시오' 입 니 다. 여기: xx 나 yy 는 서로 다른 조회 조건 이지 만 하나의 조회 텍스트 만 입력 할 수 있 지만 모든 조회 조건 에 따라 조회 할 수 있 습 니 다.여 기 는 항상 sql 에 공 을 들 입 니 다. 예 를 들 어:
SELECT * FROM tablename
WHERE (xx LIKE '% %' OR yy LIKE '% %')
그 중에서 '검색 텍스트' 는 검색 상자 에 입력 한 텍스트 이 고 xx 와 yy 는 서로 다른 검색 조건 입 니 다.아무것도 입력 하지 않 으 면 where 뒤의 것 은 WHERE (xx LIKE '%%' OR yy LIKE '%%') 이렇게 하면 모든 기록 을 찾 아 목적 을 달성 할 수 있 습 니 다 ~ ~
이때 ajax 는 배경 에 하나의 인자 만 전달 하면 됩 니 다.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
한낮 의 스타일 에 나 도 취 했다. 몇 가지 작은 경험 을 정리 하 자.
1) div 를 한 줄 에 표시 하려 면 div 마다 float: left 를 설정 해 야 합 니 다. margin-right:m.px
2) div 마다 width: n% (0 < n < 100) 를 설정 하지 않 으 면 기본 값 은 전체 body 를 가로로 차지 합 니 다.
3) 이 div 들 이 큰 div 에 둘러싸 여 있 는 지 관찰 합 니 다. 있 으 면 이 큰 div 의 width 와 height 가 다음 줄 에 표 시 된 작은 div 를 충분히 수용 할 수 있 도록 합 니 다.
4) 작은 div 마다 어떤 내용 을 한 줄 에 표시 하려 면 특정한 요소 의 width 가 크 지 않도록 하 십시오. 그렇지 않 으 면 다른 요 소 를 밀어 낼 것 입 니 다.
5) 한 줄 에 표시 하고 싶 은 요소 가 두 줄 로 잘못 표시 되면 특정한 요소 의 width 를 디 버 깅 하고 작 게 설정 합 니 다.
5) 브 라 우 저 를 사용 하 는 css 디 버 깅 도 구 를 배 우 는 것 도 중요 합 니 다!
계속 보충 중...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SASL을 사용하여 Kafka에 Camel K 인증Apache Camel K는 기본적으로 Kubernetes에서 실행되고 서버리스 및 마이크로서비스 아키텍처용으로 특별히 설계된 Apache Camel로 구축된 경량 통합 프레임워크입니다. 종종 통합 문제를 해결하기 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.