레이블이 JAVA인 게시물을 표시합니다. 모든 게시물 표시
레이블이 JAVA인 게시물을 표시합니다. 모든 게시물 표시

2017년 11월 26일 일요일

java interface 정리잘된긋

https://wikidocs.net/217

2017년 9월 12일 화요일

반복자 JAVA iterator

이터레이터(Iterator) 인터페이스
- 모든 컬렉션(Collection)으로 부터 정보를 얻을 수 있는 인터페이스 입니다.
- 즉, 자신이 컬렉션(List, Set 등)이라면 이터레이터 인터페이스를 사용할 수 있습니다.
도서관에 비유
- 우리가 책을 보관하는 책장(컬렉션)이 있고, 그 곳에는 책(컬렉션 안에 들어갈 객체)이 있습니다.
- 이 책장은 도서관 사서(이터레이터)가 관리하게 됩니다.
- 사서는 단순 무지한 녀석이라 책장 처음부터 끝까지 한번에 하나씩 밖에 못 가져옵니다.
이터레이터가 가지고 있는 메서드
- boolean hasNext() : 다음 값이 있는지 없는지 확인, 있으면 true를 리턴하고 없으면 false를 리턴 --> if나 while문에서 쓰면 되겠죠?
- E next() : 다음 값을 리턴합니다. 어떤 형태인지 모르기 때문에 리턴 유형을 E로 하겠습니다.
- void remove() : 삭제 하는 메서드


 Set<String> movie = new HashSet<String>();

    movie.add("대부");
    movie.add("반지의 제왕");
    movie.add("겨울왕국");
    movie.add("다크 나이트");
    movie.add("해리포터");
    movie.add("공공의 적");

    Iterator<String> itr = movie.iterator();
    // 이터레이터 객체 itr에 HashSet객체인 movie안에 있는 값들을 가져온다
    // 모든 컬렉션 안에는 iterator()메서드가 있기 때문에 점찍고 사용하면 movie안에 있는 값들을 가져올 수 있다
    while (itr.hasNext()) { // 값이 나올때까지 while문을 돈다
      String s = itr.next(); // 문자열 변수 s에 다음값을 넣는다
      System.out.println(s);
    }

출처: http://bitnori.tistory.com/entry/JAVA-JAVA-ITERATOR-자바-이터레이터 [Bitnori's Blog]


출처: http://bitnori.tistory.com/entry/JAVA-JAVA-ITERATOR-자바-이터레이터 [Bitnori's Blog]

2017년 7월 19일 수요일

JAVA ObjectMapper 클래스 json<->String

1.1 Convert Java object to JSON, writeValue(...)
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();

//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);

//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
1.2 Convert JSON to Java object, readValue(...)
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";

//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);

//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class);

//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
실제사용예시
List<HashMap<String, Object>> resultList = new ArrayList<HashMap<String, Object>>();
resultList = testDAO.selectListDAO(SearchVO);
ObjectMapper om = new ObjectMapper();
String jsonStr = om.writeValueAsString(resultList);

   ->[{"value1":8.4, "value2":5.4}, {"value1":8.4, "value2":5.4} ]
      이와 같은 형태로 [ ] 안에 json {} 으로 묶이게 된다
      다시 꺼내서 사용할 때는 [] 로 묶여있기 때문에 list로 빼내야함
      var resultCondition = JSON.parse(results[i].resultCondition)[0];

      만약에 []로 묶인것이 아니라 {"value1":8.4, "value2":5.4} 로 묶였다면 아래와 같이만 하면된다
      var resultCondition = JSON.parse(results[i].resultCondition);




JAVA 객체 SERIALIZE와 DESERIALIZE

SERIALIZE
객체를 직렬화하여 전송 가능한 형태로 만드는것을 의미. 객체들의 데이터를 연속적인 데이터로 변형하여 stream을 통해 데이터를 읽도록 해준다.
주로 객체들을 통째로 파일로 저장하거나 전송하고 싶을 때 사용
(홍길동, null, 222@bac.com ,30)
(김길동, null, kkk@bac.com , 40)
DESERIALIZE
직렬화된 파일 등을 역으로 직렬화 하여 다시 객체로 만듬.
저장한 파일을 읽거나 전송된 스트렘 데이터를 읽어 원래 객체 형태로 복원함
[(홍길동, null, 222@bac.com ,30), (김길동, null, kkk@bac.com , 40)]

2017년 3월 31일 금요일

spring security option

 다음은 antMatchers() 다음으로 지정할 수 있는 항목들입니다.
  • anonymous()
    인증되지 않은 사용자가 접근할 수 있습니다.
  • authenticated()
    인증된 사용자만 접근할 수 있습니다.
  • fullyAuthenticated()
    완전히 인증된 사용자만 접근할 수 있습니다(?)
  • hasRole() or hasAnyRole()
    특정 권한을 가지는 사용자만 접근할 수 있습니다.
  • hasAuthority() or hasAnyAuthority()
    특정 권한을 가지는 사용자만 접근할 수 있습니다.
  • hasIpAddress()
    특정 아이피 주소를 가지는 사용자만 접근할 수 있습니다.
  • access()
    SpEL 표현식에 의한 결과에 따라 접근할 수 있습니다.
  • not() 접근 제한 기능을 해제합니다.
  • permitAll() or denyAll()
    접근을 전부 허용하거나 제한합니다.
  • rememberMe()
    리멤버 기능을 통해 로그인한 사용자만 접근할 수 있습니다.

2016년 12월 12일 월요일

logback 설정 및 로컬 폴더 설정

--로컬파일쓸때 폴더 설정시 중요사항
d:/  or d:\\

/ 최상위경로
./ 현재 폴더
../ 상위폴더

pom.xml 추가
<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.7</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Updated at 03-Apr-2014 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Updated at 03-Apr-2014 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.2</version>
</dependency>
  <dependency>
       <groupId>org.logback-extensions</groupId>
       <artifactId>logback-ext-spring</artifactId>
       <version>0.1.2</version>
   </dependency>
web.xml 설정
<!-- logback 외부 클래스 -->
 <!-- logback --> <listener> <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class> </listener> <context-param> <param-name>logbackConfigLocation</param-name> <param-value>classpath:/log/logback-${spring.profiles.active}.xml</param-value> </context-param>

로그파일쓰기
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">

<property name="PROJECT_NAME" value="localApi" />
<property name="LOG_FILE_PATH" value="D:\\log\\local" />

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %-50class{50} : %-5line - %msg%n
</pattern>
</encoder>
</appender>

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE_PATH}/${PROJECT_NAME}.log</file>

<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %-50class{50} : %-5line - %msg%n</pattern>
</encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 파일이 하루에 한개씩 생성된다 -->
            <fileNamePattern>D:/log/sujemall-webapp.%d{yyyy-MM-dd}.log</fileNamePattern>

            <!-- maxHIstory 설정은 위 부분에 롤링 정책에 따라 적용되 된다고 보면된다.
             위 설정데로 라면 30일이 지난 파일은 삭제가 된다.-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
</appender>

<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>

2016년 10월 17일 월요일

MAVEN 돌아가는 원리 퍼옴

http://javacan.tistory.com/entry/MavenBasic

extends 와 implements의 정의 퍼옴

http://oybso.tistory.com/entry/Java%EC%97%90%EC%84%9C-extends%EC%99%80-implements-%EC%9D%98-%EC%A0%95%EC%9D%98

엄청설명 잘 되있음