반응형

배치에서 노드.js 를 실행시켜야 하는데
해당 파일명을 파라미터로 넘겨야한다

하드 코딩 하려다 찾아봄

%~n0 파일명
%~x0 확장자 합쳐서 전달

echo "C:\Program Files\Centric Software\C8\nodejs\node.exe" "SendTest.js" %~nx0


그 외 기타

%~0   파일전체경로 C:\BAT\Path\240613.bat
%~d0 드라이브 명 C:
%~p0 경로  \BAT\Path\

%~n0 파일명 240613
%~x0 확장자 .bat

반응형
반응형
param.replaceAll("/", "\\\\")

 

반응형
반응형

사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질.

 

객체 사용 방법이 동일하다는 것은 동일한 메소드를 가지고 있다는 뜻이다.

 

타이어를 상속하는 금호 타이어와 한국 타이어가 있다.

두 타이어는 (부모) 메소드를 동일하게 가지고 있다고 할 수있다.

부모 메소드를 오버라이딩하고 있다면 타이어 메소드 호출 시 오버라이딩된 메소드가 호출된다.

 

오버라이딩된 내용은 두 타이어가 다르기 때문에 실행 결과가 다르게 나온다. 

이런것을 다형성이라 한다.

public class Tire{
	//method
    public void roll(){
    	System.out.println("회전 합니다");
    }
}
public class HanTire extends Tire{
	//Override method
    
    @Override 
    public void roll(){
    	System.out.println("한국 타이어 회전 합니다");
    }
}
public class kumhoTire extends Tire{
	//Override method
    
    @Override 
    public void roll(){
    	System.out.println("금호 타이어 회전 합니다");
    }
}
public class Car{
	//필드 선언
    public Tire tire;
    
    //method
    public void run(){
    	//tire 필드에 대입된 객체의 roll() 호출
        tire.roll();
	}

}
public class CarExample{
	public static void main(String[] args){
    	//car Object Create
        Car myCar = new Car();
        
        //tire 객체 장착
        mycar.tire = new Tire();
        mycar.run();
        
        //HanTire 객체 장착
        mycar.tire = new HanTire();
        mycar.run();
        
        //KumhoTire 객체 장착
        mycar.tire = new KumhoTire();
        mycar.run();        
    }
}

 

CarExample 실행 결과 

회전 합니다.

한국 타이어 회전 합니다

금호 타이어 회전 합니다

 

 

 

반응형
반응형

자바는 문자열 리터널이 동일하다면  String 객체를 공유하도록 설계됨

String name1= "아이유";
String name2="아이유";

위와 같다면 변수에는 동일한 String 객체의 번지가 저장
(같은 힙 영역)

하지만 new  연산자로 직접 String 객체 생성하면

String name1 = new String("아이유");
String name2 = new String("아이유");

서로 다른 String 객체의 번지를 가지게 된다.
(사로 다른 힙 영역)

테스트 코드
String name1 = "아이유";
String name2 ="아이유";
String name3 = new String("아이유");

name1 == name2 // 결과 : true
name1 == name3 // 결과 : false

하여 내부 문자열 비교할 경우는
String 객체의 equals()  메소드를 사용한다.

boolean result = name1.equals(name3);

요로퀘 ~ ㅋㅋ

자바 문자열 비교 간단정리 끝


반응형
반응형

String day ="202208"
// 로 날짜가 넘어올때 자동으로 마지막 날짜 계산

Stirng day1 = day.substring(0,4)
Stirng day2 = day.substring(4,6)


LocalDate tempLastDay = LocalDate.parse(day1+"-"+day2+"-"+"01");
// 2022-08-01

LocalDate monLastDay = tempLastDay.withDayOfMonth( tempLastDay.lengthOfMonth());
// 2022-08-31

//최종변환
Timestamp endDateTime = Timestamp.valueOf(monLastDay.atTime(23,59,59));
// 2022-08-31T23:59:59



JPA 에서 날짜 검색은 참 어렵다. 할께 많네


반응형
반응형

failed to load api definition. swagger

 

계속 500 에러 뿜뿜 으아 

 

잘되던게 컨트롤러 하나 추가했는데 api-docs에서 정보를 못 불러오는거 같다..

 

중간메서드 오류 하나를 빼고 하니 잘됨

어노테이션을 하나씩 지우고 해도 오류..

 

삽질 삽질 으쌰 으..싸.. .

 

원인을 찾음

test ( MultipartFile file ,String name){ }

 

 MultipartFile file 을 swagger-ui 에서 지원을 안한다.

 

해당 영역을 

 

@Parameter(hidden=true)

test ( @Parameter(hidden=true) MultipartFile file ,String name){ }

 

하니 오류 없이 잘 나온다

 

오늘 삽질 끝

반응형
반응형
public class Node {

	// 맴버 변수 선언
    private Node left;
    private Node right;
    private Object data;

   //생성자
    public Node(Object data){
        this.data = data;
    }

    // 노드 왼쪽 자식노드와 연결해주는 메소드
    public void makeLeftSubTree(Node sub){
        if(this.left != null){
            this.left = null;
        }
        this.left = sub;
    }
    // 노드 오른쪽 자식 노드와 연결해주느 메소드
    public void makeRightSubTree(Node sub){
        if(this.right != null){
            this.right = null;
        }
        this.right = sub;
    }
    // 데이터 값
    public Object getData(){
        return this.data;
    }

    public Node getLeftSubTree(){
        return this.left;
    }

    public Node getRightSubTree(){
        return  this.right;
    }

	// 실행 테스트 
    public static void main(String[]args){
    	//node1 객체 data 1 생성
        Node node1 = new Node(1);
        //Node node2 = new Node(2);
        //node3 객체 3으로 생성
        Node node3 = new Node(3);
		//node4 객체 "데이타" 로 생성
        Node node4 = new Node("데이타");

		//노드1 왼쪽
        node1.makeLeftSubTree(node4);
        //노드2 오른쪽
        node1.makeRightSubTree(node3);

        System.out.println("노드1 데이터 " + node1.getData());
        System.out.println("노드1 left " + node1.getLeftSubTree());
        System.out.println("노드1 left value " + node1.getLeftSubTree().getData());
        System.out.println("노드1 right value " + node1.getRightSubTree().getData());
    }

}

실행 결과..

반응형
반응형

String 변수 ="1123 33111";

 

변수명.replaceAll("\\s", "")

String 변수 ="1123 33111";

변수명.replaceAll("\\s""")

trim 이 왜?? 안되나??

 

여하튼 해결 끝

 

반응형
반응형

curl -X GET "http://localhost:8000/api/v1/sample" -H "accept: */*" -H "api-key: 헤더 두개넣기 "

 

-H 를 여러개 입력하면 됨

반응형
반응형

테스트 데이터 구조

{
    "response":{
    "header":{"resultCode":"00","resultMsg":"NORMAL SERVICE."}
    ,"body":{"items":
            {
            "item":[
            {"airline":"아시아나항공","airport":"마닐라","airportCode":"MNL","carousel":19,"cityCode":"MNL","elapsetime":"0316","estimatedDateTime":"0359","exitnumber":"E","flightId":"OZ704","gatenumber":32,"remark":"도착","scheduleDateTime":"0500","terminalId":"P01"}
            ,{"airline":"대한항공","airport":"마닐라","airportCode":"MNL","carousel":10,"cityCode":"MNL","elapsetime":"0322","estimatedDateTime":"0410","exitnumber":"B","flightId":"KE624","gatenumber":251,"remark":"도착","scheduleDateTime":"0500","terminalId":"P03"}
           ]
            }
        }
    }
}

 item 영역만 가져오고 싶을땐

JSONObject json = new JSONObject(받아올 스트링 데이타.. );
JSONObject newjson = json.getJSONObject("response").getJSONObject("body").getJSONObject("items");

반응형

+ Recent posts