카테고리 아카이브: 프로그램 작성

봄 MVC 인터뷰 질문

1. 소개 Spring MVC는 Servlet API를 기반으로 구축 된 Spring의 원래 웹 프레임 워크입니다. 유연한 웹 애플리케이션 개발에 사용할 수있는 Model-View-Controller 아키텍처를 제공합니다. 이 튜토리얼에서는 종종 Spring 개발자 면접의 주제이므로 관련 질문에 초점을 맞출 것입니다. Spring Framework에 대한 더 많은 질문은 인터뷰 질문 시리즈의 다른 Spring 관련 기사를 확인하십시오. 2. 기본 Spring MVC 질문 Q1. Spring MVC를 사용해야하는 이유 Spring MVC는 우리가 애플리케이션을 쉽게 개발하고 단위 테스트 할 수 있도록 명확한 분리를 구자세히보기 »

Lambda 표현식을 사용한 Java 스트림 필터

1. 소개 이 빠른 자습서에서는 Java에서 Streams 로 작업 할 때 Stream.filter () 메서드를 사용하는 방법을 살펴 봅니다. 사용 방법과 확인 된 예외로 특수한 경우를 처리하는 방법을 살펴 보겠습니다. 2. Stream.filter () 사용 필터 () 메소드의 중간 동작이다 스트림 소정 일치 스트림의 필터 소자에있게 해준다 인터페이스 술어 : Stream filter(Predicate predicate) 이것이 어떻게 작동하는지보기 위해 Customer 클래스를 만들어 보겠습니다 . public class Customer { private String name; private int points; //Constructor and standard getters } 또한 고객 컬렉션을 만들어 보겠습니다. Customer john = new Customer("John P.", 15); Customer sarah = new Customer("Sarah M.", 200); Customer charles = new Customer("Charles B.", 1자세히보기 »

Java InputStream을 문자열로

1. 개요 이 튜토리얼에서는 Guava, Apache Commons IO 라이브러리 및 일반 Java를 사용하여 InputStream 을 String 으로 변환하는 방법을 살펴 봅니다 . 이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다. 2. 구아바로 변환 ByteSource 기능을 활용하는 Guava 예제부터 시작하겠습니다 . @Test public void givenUsingGuava_whenConvertingAnInputStreamToAString_thenCorrect() throws IOException { String originalString = randomAlphabetic(8); Input자세히보기 »

Java에서 HashMap 정렬

1. 소개 이 빠른 자습서에서는 Java 에서 HashMap 을 정렬하는 방법을 배웁니다 . 더 구체적으로 다음을 사용하여 HashMap 항목을 키 또는 값별로 정렬하는 방법을 살펴 보겠습니다 . TreeMap ArrayList 및 Collections.sort () TreeSet 은 Using 스트림 API를 , 그리고 마지막으로, 은 Using 구아바 라이브러리를 2. TreeMap 사용 아시다시피 TreeMap의 키는 자연 순서를 사용하여 정렬됩니다 . 이는 키를 기준으로 키-값 쌍을 정렬하려는 경우 좋은 솔루션입니다. 그래서 아이디어는 HashMap의 모든 데이터를 TreeMap 으로 푸시하는 것입니다 . 우선, HashMap을 정의하고 일부 데이터로 초기화 자세히보기 »

JAXB 가이드

1. 소개 이것은 JAXB (Java Architecture for XML Binding)에 대한 입문 기사입니다. 먼저 Java 객체를 XML로 또는 그 반대로 변환하는 방법을 보여준 다음 JAXB-2 Maven 플러그인을 사용하여 XML 스키마에서 Java 클래스를 생성하는 방법과 그 반대의 경우에 초점을 맞출 것입니다. 2. 개요 JAXB는 Java 객체를 XML로 마샬링 (쓰기)하고 XML을 객체로 마샬링 (읽기)하는 빠르고 편리한 방법을 제공합니다. Java 주석을 사용하여 XML 요소 및 속성을 Java 필드 및 속성에 매핑하는 바인딩 프레임 워크를 지원합니다. JAXB-2 Maven 플러자세히보기 »

자바 HashMap 가이드

1. 개요 이 기사에서는 Java에서 HashMap 을 사용하는 방법을 살펴보고 내부적으로 어떻게 작동하는지 살펴 보겠습니다. HashMap 과 매우 유사한 클래스 는 Hashtable 입니다. java.util.Hashtable 클래스 자체와 HashMap 및 Hashtable 간의 차이점 에 대해 자세히 알아 보려면 다른 기사 몇 개를 참조하십시오 . 2. 기본 사용법 먼저 HashMap이지 도라는 것이 무엇을 의미하는지 살펴 보겠습니다 . 맵은 키-값 매핑입니다. 즉, 모든 키가 정확히 하나의 값에 매핑되고 키를 사용하여 맵에서 해당 값을 검색 할 수 있습니다. 단순히 목록에 값을 추가하지 않는 이유를 묻습니다. 왜 HashMap이 필요한 가요? 간단한 이유는 성자세히보기 »

Java에서 문자 배열을 문자열로 변환

1. 개요 이 빠른 자습서에서는 Java에서 문자 배열을 문자열 로 변환하는 다양한 방법을 다룹니다 . 2. 문자열 생성자 문자열 클래스는이 받아들이는 생성자 의 char 인수로 배열 : @Test public void whenStringConstructor_thenOK() { final char[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = new String(charArray); assertThat(string, is("baeldung")); } 이것은 char 배열을 String 으로 변환하는 가장 쉬운 방법 중 하나입니다 . 내부적으로 String # valueOf 를 호출 하여 String 개체 를 만듭니다 . 3. String.valueOf () valueOf ()에 대해 말하면 직접 사용할 수도 있습니다. @Test public void whenStringValueOf_thenOK() { final char[] charAr자세히보기 »

Java Base64 인코딩 및 디코딩

1. 개요 이 자습서에서는 Java에서 Base64 인코딩 및 디코딩 기능을 제공하는 다양한 유틸리티를 살펴 봅니다. 주로 Apache Commons에서 나오는 새로운 Java 8 API와 유틸리티 API를 설명 할 것입니다. 2. Base 64 용 Java 8 Java 8은 마침내 표준 API 에 Base64 기능 을 추가했습니다 . 이것은 java.util.Base64 유틸리티 클래스 를 통해 이루어 집니다. 기본 인코더 프로세스부터 살펴 보겠습니다. 2.1. 자바 8 기본 Base64 기본 인코더는 일을 단순하게 유지하고 라인 분리없이 입력을 그대로 인코딩합니다. 출력은 A-Za-z0-9 + / 자세히보기 »

Lambda 표현식 및 기능 인터페이스 : 팁 및 모범 사례

1. 개요 이제 Java 8이 광범위한 사용, 패턴 및 일부 헤드 라이닝 기능에 대한 모범 사례가 등장하기 시작했습니다. 이 자습서에서는 기능 인터페이스와 람다 식을 자세히 살펴 봅니다. 2. 표준 기능 인터페이스 선호 java.util.function 패키지에 수집 된 기능 인터페이스 는 람다 식 및 메서드 참조에 대한 대상 유형을 제공하는 대부분의 개발자의 요구를 충족합니다. 이러한 각 인터페이스는 일반적이고 추상적이므로 거의 모든 람다 식에 쉽게 적용 할 수 있습니다. 개발자는 새로운 기능 인터페이스를 만들기 전에이 패키지를 살펴 봐야합니다. 인터페이스 Foo를 고려하십시오 . @FunctionalInterface public interface Foo { String method(String string); } 이 인터페이스를 매개 변수로 사용하는 UseFoo 클래스의 add () 메서드가 있습니다 . public String자세히보기 »

자바 열거 형 가이드

1. 개요 이 기사에서는 Java 열거 형이 무엇인지, 어떤 문제를 해결하는지, 실제로 사용할 수있는 일부 디자인 패턴을 살펴 보겠습니다. 열거 키워드는 자바 5에 도입 그것은 항상 확장 클래스의 특별한 유형이다 java.lang.Enum의 클래스를. 사용법에 대한 공식 문서는 문서를 참조하십시오. 이러한 방식으로 정의 된 상수는 코드를 더 읽기 쉽게 만들고, 컴파일 타임 검사를 허용하고, 허용 된 값 목록을 미리 문서화하고 잘못된 값이 전달되어 예기치 않은 동작을 방지합니다. 다음은 피자 주문 상태를 정의하는 열거 형의 빠르고 간단한 예입니자세히보기 »

Java의 Thread.join () 메서드

1. 개요 이 튜토리얼에서는 Thread 클래스 의 다른 join () 메서드에 대해 설명합니다 . 이러한 메서드와 몇 가지 예제 코드에 대해 자세히 살펴 보겠습니다. 등을 대기 () 및 통지 () 방법 , (가)에 가입 스레드 간 동기화의 다른 메커니즘이다. wait () 및 notify ()에 대해 자세히 알아 보려면이 자습서를 빠르게 살펴볼 수 있습니다 . 2. Thread.join () 메서드 결합 방법은 Thread 클래스에 정의되어 있습니다 . public final void join () throws InterruptedExcept자세히보기 »

자바에서 삽입 정렬

1. 개요 이 튜토리얼에서는 삽입 정렬 알고리즘 에 대해 논의 하고 Java 구현을 살펴볼 것 입니다. 삽입 정렬은 적은 수의 항목을 주문하기위한 효율적인 알고리즘입니다. 이 방법은 카드 플레이어가 카드 놀이를 정렬하는 방식을 기반으로합니다. 우리는 빈 왼손으로 시작하고 카드를 테이블 위에 놓습니다. 그런 다음 테이블에서 한 번에 하나씩 카드를 꺼내 왼손의 올바른 위치에 삽입합니다. 새 카드의 올바른 위치를 찾기 위해 이미 정렬 된 카드 세트와 오른쪽에서 왼쪽으로 비교합니다. 의사 코드 형식의 알고리즘 단계를 이해하는 것으로 시작하겠습니다. 2. 의사 코드 삽입 정자세히보기 »

Spring RequestMapping

1. 개요 이 튜토리얼에서는 Spring MVC 의 주요 어노테이션 중 하나 인 @RequestMapping 에 초점을 맞출 것입니다 . 간단히 말해, 주석은 웹 요청을 Spring Controller 메서드에 매핑하는 데 사용됩니다. 2. @ RequestMapping 기본 사항 몇 가지 기본 기준을 사용하여 HTTP 요청을 메서드에 매핑하는 간단한 예부터 시작하겠습니다. 2.1. @RequestMapping — 님의 사진 Path @RequestMapping(value = "/ex/foos", method = RequestMethod.GET) @ResponseBody public String getFoosBySimplePath() { return "Get some Foos"; } 간단한 curl 명령 으로이 자세히보기 »

Java에서 ConcurrentModificationException 방지

1. 소개 이 기사에서는 ConcurrentModificationException 클래스를 살펴 보겠습니다 . 먼저 작동 방식을 설명하고 트리거 테스트를 사용하여 증명합니다. 마지막으로 실제 예제를 사용하여 몇 가지 해결 방법을 시도해 보겠습니다. 2. ConcurrentModificationException 트리거 본질적으로 ConcurrentModificationException 은 우리가 반복하는 무언가가 수정 될 때 fail-fast 를 위해 사용됩니다 . 간단한 테스트로이를 증명해 보겠습니다. @Test(expected = ConcurrentModificationException.class) public void whilstRemovingDuringIteration_shouldThrowException() throws InterruptedException { List integers = newArrayList(1, 2, 3); fo자세히보기 »

Java 9 새로운 기능

1. 개요 Java 9에는 풍부한 기능 세트가 함께 제공됩니다. 새로운 언어 개념은 없지만 새로운 API와 진단 명령은 확실히 개발자에게 흥미로울 것입니다. 이 글에서 우리는 몇 가지 새로운 기능에 대해 빠르고 높은 수준으로 살펴볼 것입니다. 새로운 기능의 전체 목록은 여기에서 확인할 수 있습니다. 2. 모듈 식 시스템 – 직소 프로젝트 자바 플랫폼에 모듈화를 도입하는 큰 것부터 시작하겠습니다. 모듈 식 시스템은 OSGi 프레임 워크의 시스템과 유사한 기능을 제공합니다. 모듈에는 종속성 개념이 있으며 공개 API를 내보내고 구현 세부 사항을 숨기거나자세히보기 »

Java toString () 메서드

1. 개요 Java의 모든 클래스는 직접 또는 간접적으로 Object 클래스 의 하위입니다 . 그리고 Object 클래스에는 toString () 메서드 가 포함되어 있으므로 모든 인스턴스에서 toString () 을 호출 하고 해당 문자열 표현을 가져올 수 있습니다. 이 튜토리얼에서는 toString () 의 기본 동작을 살펴보고 동작 을 변경하는 방법을 배웁니다. 2. 기본 동작 객체 참조를 인쇄 할 때마다 내부적으로 toString () 메서드를 호출합니다 . 따라서 클래스에서 toString () 메서드를 정의하지 않으면 자세히보기 »

한 줄로 Java 목록 초기화

1. 소개 이 빠른 자습서에서는 한 줄을 사용하여 List 를 초기화하는 방법을 조사합니다 . 2. 어레이에서 생성 배열에서 List 를 만들 수 있으며 배열 리터럴 덕분에 한 줄로 초기화 할 수 있습니다. List list = Arrays.asList(new String[]{"foo", "bar"}); 배열 생성을 처리하기 위해 varargs 메커니즘을 신뢰할 수 있습니다. 이를 통해 더 간결하고 읽기 쉬운 코드를 작성할 수 있습니다. @Test public void givenArraysAsList_thenInitialiseList() { List list = Arrays.asList("foo", "bar"); assertTrue(list.contains("foo")); } 이 코드의 결과 인스턴스는자세히보기 »

자바 복사 생성자

1. 소개 Java 클래스의 복사 생성자 는 동일한 Java 클래스의 다른 객체를 사용하여 객체를 생성하는 생성자입니다 . 여러 필드가있는 복잡한 개체를 복사하거나 기존 개체의 전체 복사본을 만들고 싶을 때 유용합니다. 2. 복사 생성자를 만드는 방법 복사 생성자를 만들려면 먼저 매개 변수와 같은 유형의 객체를 사용하는 생성자를 선언 할 수 있습니다. public class Employee { private int id; private String name; public Employee(Employee employee) { } } 그런 다음 입력 개체의 각 필드를 새 인스턴스에 복사합니다. public class Employee { private int id; private String name; public Employee(Employee employee) { this.id = employee.id; this.자세히보기 »

자바 컬렉션 인터뷰 질문

이 기사는 시리즈의 일부입니다. • Java Collections 인터뷰 질문 (현재 기사) • Java Type System 인터뷰 질문 • Java 동시성 인터뷰 질문 (+ 답변) • Java 클래스 구조 및 초기화 면접 질문 • 자바 8 인터뷰 질문 (+ 답변) • 자바 인터뷰 질문의 메모리 관리 (+ 답변) • Java Generics 인터뷰 질문 (+ 답변) • Java Flow Control 인터뷰 질문 (+ 답변) • Java 예외 인터뷰 질문 (+ 답변) • Java Annotations 인터뷰 질문 (+ 답변) • 상위 봄 프레임 워크 인터뷰 질문 1. 소개 Java Collections는 Java 개발자를위한 기술 인터뷰에서 자주 제기되는 주제입니다. 이 기사에서는 가장 자주 묻는 몇 가지 중요한 질문을 검토하고 제대로 이해하기 어려울 수 있습니다. 2. 질문 Q1. 컬렉션 유형 계층을 설명합니다. 주요 인터페이스는 무엇이며 그 차이점은 무엇입니까? 의 Iterable 인터페이스하여 반복 될 수있는 임의의 컬렉션 나타내는 피 각 루프. 컬렉션 인터페이스로부터 상속 의 Iterable 및 기타 자세히보기 »

Java에서 문자열을 int 또는 Integer로 변환

1. 소개 문자열 을 int 또는 Integer 로 변환하는 것은 Java에서 매우 일반적인 작업입니다. 이 기사에서는이 문제를 다루는 여러 방법을 보여줄 것입니다. 이 기본 변환을 처리하는 몇 가지 간단한 방법이 있습니다. 2. Integer.parseInt () 주요 해결책 중 하나는,이다 사용 정수 : 집 전용 정적 방법 으로 parseInt () 프리미티브 반환 INT의 값 : @Test public void givenString_whenParsingInt_shouldConvertToInt() { String givenString = "42"; int result = Integer.parseInt(givenString); assertThat(result).isEqualTo(42); } 기본적으로 parseInt () 메서드는 주어진 문자열 이 10 진법 정수 라고 가정합니다 . 또한이 메소드는이 기본 기수 를 변경하기 위해 다른 인수를 허용 합니다. 예를 들어 다음과 같이 바이너리 String을 구문 분석 할 수 있습니다 . @Test public void gi자세히보기 »

가장 중요한 JVM 매개 변수 안내

1. 개요 이 빠른 자습서에서는 Java Virtual Machine을 구성하는 데 사용할 수있는 가장 잘 알려진 옵션을 탐색합니다. 2. 명시 적 힙 메모리 – Xms 및 Xmx 옵션 가장 일반적인 성능 관련 사례 중 하나는 애플리케이션 요구 사항에 따라 힙 메모리를 초기화하는 것입니다. 이것이 우리가 최소 및 최대 힙 크기를 지정해야하는 이유입니다. 이를 달성하기 위해 아래 매개 변수를 사용할 수 있습니다. -Xms[unit] -Xmx[unit] 여기서 unit 은 메모리 ( 힙 크기로 표시됨)가 초기화 되는 단위를 나타냅니다 . 단위는 GB의 경우 'g' , MB의 경우 'm' , KB의 경우 'k자세히보기 »

java.util.Formatter 가이드

1. 개요 이 기사에서는 레이아웃 정당화 및 정렬을 지원 하는 java.util.Formatter 클래스를 사용하여 Java 의 문자열 형식화에 대해 설명합니다 . 2. 포맷터 사용 방법 C의 printf를 기억 하십니까? Java 에서 문자열 을 포맷하는 것은 매우 유사합니다. Formatter 의 format () 메서드 는 String 클래스 의 정적 메서드를 통해 노출됩니다 . 이 메서드는 템플릿 문자열 과 인수 목록을 받아 템플릿을 다음으로 채 웁니다. String greetings = String.format( "Hello Folks, welco자세히보기 »

자바의 관찰자 패턴

1. 개요 이 기사에서는 Observer 패턴을 설명하고 몇 가지 Java 구현 대안을 살펴 보겠습니다. 2. 관찰자 패턴이란? 관찰자는 행동 설계 패턴입니다. 객체 간의 통신을 지정합니다 : 관찰 가능 및 관찰자 . 관찰은 통지 목적은 관찰자 의 상태의 변화에 대해. 예를 들어 뉴스 대행사는 뉴스를 수신하면 채널에 알릴 수 있습니다. 뉴스 수신은 뉴스 대행사의 상태를 바꾸고 채널에 알림을 보냅니다. 우리가 그것을 어떻게 스스로 구현할 수 있는지 봅시다. 먼저 NewsAgency 클래스를 정의하겠습니다 . public class NewsAgency { private String자세히보기 »

Java에서 String이 변경 불가능한 이유는 무엇입니까?

1. 소개 Java에서 문자열은 변경할 수 없습니다. 인터뷰에서 흔히 볼 수있는 분명한 질문은 "왜 Strings가 Java에서 불변으로 설계 되었는가?"입니다. 자바의 창시자 인 James Gosling은 인터뷰에서 불변을 언제 사용해야하는지에 대한 질문을 받았습니다. 가능할 때마다 불변을 사용합니다. 그는 또한 캐싱, 보안, 복제없는 쉬운 재사용 등과 같이 불변성이 제공하는 기능을 언급하는 그의 주장을지지합니다. 이 튜토리얼에서는 Java 언어 디자이너가 String을 변경 불가능 하게 유지하기로 결정한 이유를 더 자세히 살펴볼 것 입니다. 2. 불변 객체 란 자세히보기 »

스프링 JDBC

1. 개요 이 기사에서는 Spring JDBC 모듈의 실제 사용 사례를 살펴 보겠습니다. Spring JDBC의 모든 클래스는 4 개의 개별 패키지로 나뉩니다. core – JDBC의 핵심 기능. 이 패키지의 중요한 클래스에는 JdbcTemplate , SimpleJdbcInsert, SimpleJdbcCall 및 NamedParameterJdbcTemplate이 있습니다. datasource – 데이터 소스 에 액세스하기위한 유틸리티 클래스입니다. 또한 Jakarta EE 컨테이너 외부에서 JDBC 코드를 테스트하기위한 다양한 데이터 소스 구현이 있습니다. object – 객체 지향 방식의 DB 액세스. 쿼리를자세히보기 »

배열에서 문자열로 변환

1. 개요 이 짧은 자습서에서는 문자열 또는 정수 배열을 문자열로 변환하고 다시 되 돌리는 방법을 살펴볼 것입니다. 일반적으로 사용되는 라이브러리의 바닐라 Java 및 Java 유틸리티 클래스로이를 달성 할 수 있습니다. 2. 배열을 문자열로 변환 때로는 문자열 또는 정수 배열을 문자열로 변환해야하지만 불행히도이 변환을 수행하는 직접적인 방법이 없습니다. 배열에 대한 toString () 메서드 의 기본 구현은 Ljava.lang.String; @ 74a10858 과 같은 것을 반환합니다 . 이는 객체의 유형과 해시 코드 만 알려줍니다. 그러나 java.util.Arrays 유틸리티 클래스는 배열에 대한 toString () 메소드를 포함하여 배열 및 문자열 조작을 지원 합니다. Arrays.toString () 은 입력 배열의 내용이 포함 된 문자열을 반환합니다. 생성 된 새 문자열은 대괄호 (“[]”)로 묶인 쉼표로 구분 된 배열자세히보기 »

Spring 튜토리얼을 사용한 REST

REST 상단 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 REST API를 빌드하는 것은 간단한 작업이 아닙니다. 높은 수준의 RESTful 제약부터 모든 것이 제대로 작동하고 잘 작동하도록 만드는 핵심에 이르기까지. Spring은 REST를 일류 시민으로 만들었고 플랫폼은 도약과 경계에서 성숙했습니다. Spring 5 릴리스를 통해 REST는 이제 전투가 강화되고 완전히 성숙되었습니다 . 이 가이드를 통해 저의 목표는 주제에 대해 사용할 수있는 방대한 정보를 정리하고 API를 올바르게 구축하는 과정을 안내하는 것입자세히보기 »

Mockito 튜토리얼

이 튜토리얼 시리즈는 기본에서 고급 사용 사례에 이르기까지 Mockito 라이브러리 에 중점을두고 JUnit과 같은 다른 유용한 테스트 라이브러리와 통합합니다. Mockito 기본 사항 Mockito @Mock, @Spy, @Captor 및 @InjectMocks 시작하기 (인기) BDDMockito에 대한 빠른 가이드 Mockito의 모의 방법 Mockito ArgumentMatchers Mockito를 사용하여 예외 발생 모의 (인기) Mockito의 Java 8 기능 Mockito When / Then Cookbook (인기) Mockito Verify Cookbook (인기) Mockito 고급 Mockito를 사용한 모의 무효 메서드 (인기) Mockito로 최종 클래스 및 방법 모의 Mockito 2를 사용한 지연 검증 Mockito로 콜백 테스트 경고 :“MockitoJUnitRunner 유형은 더 이상 사용되지 않습니다.” Mockito가 포함 된 Kotlin (인기) 다른 라이브러리와 Mockito 통합 Mockito Mocks를 Spring Bean에 주입 Mocki자세히보기 »

Windows 7, 8, 10, Mac OS X, Linux에서 JAVA_HOME 설정

1. 개요 이 빠른 기사에서는 Windows, Mac OS X 및 Linux 에서 JAVA_HOME 변수 를 설정하는 방법을 살펴 보겠습니다 . 2. 윈도우 2.1. Windows 10 및 8 검색을 열고 고급 시스템 설정 입력 표시된 옵션에서 고급 시스템 설정보기 링크를 선택합니다. 언더 고급 탭을 클릭하여 환경 변수를 에서 시스템 변수 섹션을 클릭 새 (또는 사용자 변수를 단일 사용자 설정에 대해) JAVA_HOME 을 변수 이름 으로 설정 하고 JDK 설치 경로를 변수 값으로 설정 하고 확인을 클릭합니다. 클릭 확인을 클릭 자세히보기 »

자바에서 HashMap 초기화

1. 개요 이 튜토리얼에서는 Java 에서 HashMap 을 초기화하는 다양한 방법에 대해 알아 봅니다 . Java 8과 Java 9를 사용할 것입니다. 2. 정적 HashMap을 위한 정적 이니셜 라이저 정적 코드 블록을 사용하여 HashMap 을 초기화 할 수 있습니다 . public static Map articleMapOne; static { articleMapOne = new HashMap(); articleMapOne.put("ar01", "Intro to Map"); articleMapOne.put("ar02", "Som자세히보기 »

Spring을 통한 보안

봄과 보안 자습서 예상대로 봄 보안에 초점을. 등록 흐름을 구축하고 일부 프레임 워크 기본 사항을 이해하는 데 관심이있는 경우 등록 시리즈를 시작하십시오. 그런 다음 인증 및 기타 Spring Security 내부를 심층적으로 탐색하십시오. 마지막으로 OAuth 지원과 같은 몇 가지 고급 주제를 살펴보십시오. Spring Security에 등록 스프링 보안 등록 튜토리얼 Spring Security로 등록 흐름을 구축하십시오. Spring Security를 ​​사용한 인증 스프링 보안 양식 로그인 Spring 자세히보기 »

map ()과 flatMap ()의 차이점

1. 개요 map () 및 flatMap () API는 기능 언어에서 파생됩니다. Java 8에서는 Optional, Stream 및 CompletableFuture 에서 찾을 수 있습니다 ( 약간 다른 이름으로 제공됨 ). 스트림 은 일련의 개체를 나타내는 반면 선택 사항은 존재하거나 없을 수있는 값을 나타내는 클래스입니다. 다른 집계 작업 중에서 map () 및 flatMap () 메서드가 있습니다. 모두 같은 반환 형식을 가지고 있다는 사실에도 불구하고 , 그들은 매우 다르다. 스트림과 옵션의 몇 가지 예를 분석하여 이러한 차이점을 설명하겠습니다. 2. 옵션의지도 및 플랫 맵 지도 () 메소드는 잘 작동자세히보기 »

SpringData JPA 소개

1. 개요 이 기사는 Spring 프로젝트에 SpringData JPA를 도입 하고 지속성 계층을 완전히 구성하는 데 중점을 둡니다 . Java 기반 구성 및 프로젝트의 기본 Maven pom을 사용하여 Spring 컨텍스트를 설정하는 방법에 대한 단계별 소개는이 기사를 참조하십시오. 2. 스프링 데이터 생성 DAO – 더 이상 DAO 구현 없음 이전 기사에서 논의했듯이 DAO 계층은 일반적으로 단순화 할 수 있고 단순화해야하는 많은 상용구 코드로 구성됩니다. 이러한 단순화의 장점은 다양합니다. 정의 및 유지 관리해야하는 아티팩트의 수 감소, 데이터 액세스 패턴의 일관성 자세히보기 »

Jackson JSON 튜토리얼

이 튜토리얼 은 JSON을 마샬링 및 언 마샬링하는 동안 가장 일반적인 Jackson 2 작업, 문제 및 솔루션을 보여줍니다. 기본 잭슨 마샬링 Jackson 주석 예 (인기) Jackson ObjectMapper 소개 (인기) 잭슨, 마샬링의 속성 무시 Jackson으로 Null 필드 무시 Jackson-필드 이름 변경 Jackson을 사용한 XML 직렬화 및 역 직렬화 Jackson – Marshall String에서 JsonNode로 Jackson과 함께 Optional 사용 기본 잭슨 언 마샬링 Jackson-알 수없는 속성으로 JSON 언 마샬링 잭슨 대 Gson 고급 잭슨 마샬링 Jackson을 사용한 맵 직렬화 및 역 직렬화 Jackson을 사용하여 사용자 지정 기준을 충족하는 필드 만 직렬화 Jackson을 사용하여 열거 형을 직렬화 및 역 직렬화하는 방법 Jackson-JsonMappingException (클래스에 대한 직렬 변환기 없음) 잭슨 데이트 Jackson JSON보기 Jackson 예외 – 문제 및 솔루션 Jackson을 사용하여 XML을 JSON으로 변환 자세히보기 »

Spring AOP 소개

1. 소개 이 튜토리얼에서는 Spring과 함께 AOP (Aspect Oriented Programming)를 소개하고 실제 시나리오에서이 강력한 도구를 사용하는 방법을 이해하기 시작합니다. Spring AOP를 사용하여 개발할 때 AspectJ의 주석을 활용하는 것도 가능하지만이 기사에서는 핵심 Spring AOP XML 기반 구성에 초점을 맞추고 있습니다. 2. 개요 AOP는 교차 우려 사항을 분리하여 모듈성을 높이는 것을 목표로하는 프로그래밍 패러다임입니다. 코드 자체를 수정하지 않고 기존 코드에 추가 동작을 추가하여이를 수행합니다. 대신이 새 코드와 이러한 새 동작을 별도로 선언 할 수 있습니다. Spring의 AOP 프레임 워크는 이러한 교차 문제를 구현하는 데 도움이됩니다. 3자세히보기 »

System.exit () 가이드

1. 개요 이 튜토리얼에서는 Java에서 System.exit 가 무엇을 의미 하는지 살펴 보겠습니다 . 그 목적, 사용 장소 및 사용 방법을 살펴 보겠습니다. 또한 다른 상태 코드를 사용하여 호출 할 때의 차이점도 알아 봅니다. 2. System.exit 란 무엇입니까 ? System.exit 는 void 메서드입니다. 호출 스크립트 또는 프로그램에 전달되는 종료 코드가 필요합니다. 코드 0으로 종료하면 정상적인 종료를 의미합니다. System.exit(0); 모든 정수를 메소드에 인수로 전달할 수 있습니다. 0이 아닌 상태 코드는 비정상 종료로 간자세히보기 »

Google Guice 가이드

1. 소개 이 기사에서는 Google Guice의 기본 사항을 검토 합니다 . Guice에서 기본 DI (Dependency Injection) 작업을 완료하는 방법을 살펴 보겠습니다. 또한 Guice 접근 방식을 Spring 및 Contexts and Dependency Injection (CDI)과 같은 기존 DI 프레임 워크의 접근 방식과 비교하고 대조 할 것입니다. 이 기사는 독자가 의존성 주입 패턴의 기본 사항을 이해하고 있다고 가정합니다. 2. 설정 Maven 프로젝트에서 Google Guice를 사용하려면 pom.xml에 다음 종속성을 추가해야합니다 . com.google.inject guice 4.1.0 여기에자세히보기 »

Java의 UUID 가이드

1. 개요 GUID (Globally Unique Identifier)라고도하는 UUID (Universally Unique Identifier) 는 모든 실제 용도에 고유 한 128 비트 long 값을 나타냅니다 . UUID의 표준 표현은 16 진수 (옥텟)를 사용합니다. 123e4567-e89b-12d3-a456-556642440000 UUID는 길이를 36 자로 만드는 4 개의 "-"기호와 함께 16 진수 (각각 4 자)로 구성됩니다 . Nil UUID는 모든 비트가 0으로 설정되는 특수한 형식의 UUID입니다. 이 기사에서는 Java 의 UUID 클래스를 살펴 보겠습니다 . 먼저 클래스 자체를 사용하는 방법을 살펴 보겠습니다. 그런 다음 다양한 유형의 UUID와이를 Java에서자세히보기 »

Java 컴파일러 오류 : 잘못된 표현식 시작

1. 개요 "불법 한 표현 시작"은 컴파일 타임에 직면 할 수있는 일반적인 오류입니다. 이 자습서에서는이 오류의 주요 원인과 해결 방법을 설명하는 예제를 볼 수 있습니다. 2. 누락 된 중괄호 중괄호가 누락되면 "표현식의 잘못된 시작"오류가 발생할 수 있습니다. 먼저 예제를 살펴 보겠습니다. package com.baeldung; public class MissingCurlyBraces { public void printSum(int x, int y) { System.out.println("Calculation Result:" + calcSum(x, y)); public int calcSum(int x, i자세히보기 »

자바 트리 맵 가이드

1. 개요 이 기사에서는 JCF (Java Collections Framework)에서 Map 인터페이스 의 TreeMap 구현 을 살펴 보겠습니다 . TreeMap 은 키의 자연스러운 순서에 따라 항목을 정렬하거나 구성시 사용자가 제공하는 경우 비교기를 사용하는 것이 더 나은지도 구현입니다. 이전에 우리는 HashMap 및 LinkedHashMap 구현 을 다루었으며 이러한 클래스가 작동하는 방식에 대한 유사한 정보가 있다는 것을 알게 될 것입니다. 언급 된 기사는이 기사를 사용하기 전에 읽어 보는 것이 좋습니다. 2. TreeMap의 기본 정렬 기본적으로 Tree자세히보기 »

Spring Bean은 무엇입니까?

1. 개요 Bean은 Spring Framework의 핵심 개념입니다. 따라서이 개념을 이해하는 것은 프레임 워크의 요령을 파악하고 효과적인 방법으로 사용하는 데 중요합니다. 안타깝게도 간단한 질문에 대한 명확한 답은 없습니다. Spring bean이 실제로 무엇인지. 일부 설명은 너무 낮은 수준으로 이동하여 큰 그림을 놓치고 일부는 너무 모호합니다. 이 튜토리얼은 공식 문서의 설명부터 시작하여 주제에 대해 조명하려고합니다. 2. 빈 정의 다음은 Spring Framework 문서에있는 Bean의 정의입니다. Spring에서는 애플리케이션의 백본을 형성하고 S자세히보기 »

자바의 NaN

1. 개요 간단히 말해, NaN 은 "숫자가 아님"을 나타내는 숫자 데이터 유형 값입니다. 이 빠른 자습서에서는 Java 의 NaN 값과이 값을 생성하거나 포함 할 수있는 다양한 작업에 대해 설명합니다 . 2. NaN 이란? NaN은 일반적으로 잘못된 작업의 결과를 나타냅니다. 예를 들어, 0을 0으로 나누려는 시도는 그러한 작업 중 하나입니다. 또한 표현할 수없는 값에 NaN 을 사용 합니다. 값 ( i )을 복소수로만 설명 할 수 있기 때문에 -1의 제곱근이 그러한 경우 중 하나 입니다. 부동 소수점 산술을위한 IEEE 표준 (IEEE 754)은 NaN 값을 정의합니다 . Java에서 자세히보기 »

봄 프로필

1. 개요 이 튜토리얼에서는 Spring의 프로파일 소개에 초점을 맞출 것입니다. 프로필은 프레임 워크의 핵심 기능입니다.이를 통해 빈을 다른 프로필 ( 예 : dev , test , prod) 에 매핑 할 수 있습니다. 그런 다음 다른 환경에서 다른 프로필을 활성화하여 필요한 빈만 부트 스트랩 할 수 있습니다. 2. Bean에서 @Profile 사용 간단하게 시작하여 특정 프로파일에 속하는 Bean을 만드는 방법을 살펴 보겠습니다. 우리는 @Profile 어노테이션을 사용합니다 . 빈을 특정 프로파일에 매핑합니다 . 주석은 단순히 하나 (또는 ​​여러) 프로필의 이름을 사용합니다. 기본 시나리오를 고려하십시오. 개발 중에 만 활성화되어야하지만 프로덕션에 배치되지 자세히보기 »

WAR 파일을 Tomcat에 배포하는 방법

1. 개요 Apache Tomcat은 Java 커뮤니티에서 가장 인기있는 웹 서버 중 하나입니다. WAR 확장과 함께 웹 아카이브를 제공 할 수 있는 서블릿 컨테이너 로 제공됩니다. 컨테이너를 다시 시작할 필요없이 새 웹 애플리케이션을 배포하거나 기존 웹 애플리케이션을 배포 취소 할 수 있는 관리 대시 보드 를 제공합니다 . 이는 프로덕션 환경에서 특히 유용합니다. 이 기사에서는 Tomcat에 대해 간략히 살펴본 다음 WAR 파일을 배포하는 다양한 접근 방식을 다룹니다. 2. Tomcat 구조 시작하기 전에 몇 가지 용어 및 환경 변수를 숙지해야합니다. 2.1. 환경 변수 이전에 Tomcat으로 작업 한 적이 있다면 다음과 같이 매우 친숙 할 것입니다. $ CATALINA_HOME 이 변수는 서버가 설치된자세히보기 »

RxJava 소개

1. 개요 이 기사에서는 데이터 시퀀스를 구성하고 소비하기 위해 Java에서 Rx (Reactive Extensions)를 사용하는 데 초점을 맞출 것입니다. 한눈에 API는 Java 8 Streams와 비슷해 보이지만 실제로는 훨씬 더 유연하고 유창하여 강력한 프로그래밍 패러다임이됩니다. RxJava에 대해 더 알고 싶다면이 글을 확인하세요. 2. 설정 Maven 프로젝트에서 RxJava를 사용하려면 pom.xml에 다음 종속성을 추가해야합니다 . io.reactivex rxjava ${rx.java.version} 또는 Gradle 프로젝트의 경우 : compile 'io자세히보기 »

SLF4J 경고 : 클래스 경로에 여러 SLF4J 바인딩이 포함됨

1. 개요 애플리케이션에서 SLF4J를 사용할 때 콘솔에 인쇄 된 클래스 경로의 여러 바인딩에 대한 경고 메시지가 표시되는 경우가 있습니다. 이 자습서에서는이 메시지가 표시되는 이유와 해결 방법을 이해하려고합니다. 2. 경고 이해 먼저 샘플 경고를 살펴 보겠습니다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:.../slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:.../logback자세히보기 »

자바 – 리소스 활용

1. 개요 Java 7에 도입 된 try-with-resources에 대한 지원을 통해 해당 블록 실행 후 리소스가 닫힐 것이라는 보장과 함께 try 블록 에서 사용할 리소스를 선언 할 수 있습니다. 선언 된 리소스는 AutoCloseable 인터페이스를 구현해야합니다 . 2. try-with-resources 사용 간단히 말해서, 자동으로 닫히려면 리소스가 아래와 같이 try 내에서 선언되고 초기화되어야합니다 . try (PrintWriter writer = new PrintWriter(new File("test.txt"))) 자세히보기 »

자바의 스레드 풀 소개

1. 소개 이 기사는 표준 Java 라이브러리의 다양한 구현으로 시작한 다음 Google의 Guava 라이브러리를 살펴 보는 Java의 스레드 풀을 살펴 봅니다. 2. 스레드 풀 Java에서 스레드는 운영 체제의 리소스 인 시스템 수준 스레드에 매핑됩니다. 제어 할 수없는 방식으로 스레드를 생성하면 이러한 리소스가 빠르게 부족해질 수 있습니다. 스레드 간의 컨텍스트 전환은 병렬 처리를 에뮬레이트하기 위해 운영 체제에서도 수행됩니다. 단순한보기는 더 많은 스레드를 생성할수록 각 스레드가 실제 작업을 수행하는 데 소요되는 시간이 줄어든다는 것자세히보기 »

자바의 반복자 가이드

1. 소개 반복자는 우리가 컬렉션을 통과 할 수있는 많은 방법 중 하나이며, 모든 옵션으로, 그것의 장점과 단점을 가지고있다. Enumeration을 대체하기 위해 Java 1.2에서 처음 도입되었으며 다음과 같습니다. 개선 된 메소드 이름 도입 우리가 반복하는 컬렉션에서 요소를 제거 할 수 있도록했습니다. 반복 순서를 보장하지 않습니다. 이 자습서에서는 간단한 Iterator 인터페이스를 검토하여 다양한 메서드를 사용하는 방법을 알아 봅니다. 흥미로운 기능을 추가 하는 더 강력한 ListIterator 확장 도 확인합니다 . 2. 반복자 인터페이스 시작하려면 컬렉션 에서 Iterator 를 얻어야합니다 . 이것은 iterator () 메서드 를 호출하여 수행됩니다 . 간자세히보기 »

Spring Boot에 로그인

1. 개요 이 짧은 튜토리얼에서는 Spring Boot에서 사용할 수있는 주요 로깅 옵션을 살펴볼 것입니다. Logback에 대한 자세한 정보는 A Guide to Logback에서 확인할 수 있으며 Log4j2는 Log4j2 소개 – Appenders, Layouts 및 Filters에 소개되어 있습니다. 2. 초기 설정 먼저 Spring Boot 모듈을 만들어 보겠습니다. 권장하는 방법은 Spring Boot Tutorial에서 다루는 Spring Initializr를 사용하는 것입니다. 이제 유일한 클래스 파일 인 Logging자세히보기 »

자바 스위치 문

1. 개요 이 자습서에서는 switch 문이 무엇 이며 사용 방법에 대해 알아 봅니다 . 스위치 문은 우리가 여러 가지 중첩 된 대체 할 수 있는 경우 - 다른 구조를 따라서 우리의 코드의 가독성을 향상시킬 수 있습니다. 스위치 는 시간이 지남에 따라 발전했습니다. 특히 Java 5 및 7에서 새로운 지원 유형이 추가되었습니다. 또한 계속 발전하고 있습니다. 스위치 식은 Java 12에 도입 될 것입니다. 아래에서는 switch 문 사용, break 문의 역할 , switch 인수 / 케이스 값에 대한 요구 사항 및 switch 문 에서 String 비교 를 보여주는 몇 가지 코드 예제를 제공 합자세히보기 »

스프링 부트 주석

이 기사는 시리즈의 일부입니다. • Spring Core Annotations • Spring 웹 주석 • Spring Boot Annotations (현재 기사) • Spring Scheduling Annotations • 스프링 데이터 주석 • Spring Bean 주석 1. 개요 Spring Boot는 자동 구성 기능으로 Spring 구성을 더 쉽게 만들었습니다. 이 빠른 자습서에서는 org.springframework.boot.autoconfigure 및 org.springframework.boot.autoconfigure.condition 패키지 의 주석을 살펴 봅자세히보기 »

Spring ApplicationContext

1. 개요 이 튜토리얼에서는 Spring ApplicationConext 인터페이스를 자세히 살펴볼 것 입니다. 2. ApplicationContext 인터페이스 Spring 프레임 워크의 주요 기능 중 하나는 IoC (Inversion of Control) 컨테이너입니다. Spring IoC 컨테이너는 애플리케이션의 객체를 관리하는 역할을합니다. 제어 반전을 달성하기 위해 종속성 주입을 사용합니다. BeanFactory 및 ApplicationContext 인터페이스 는 Spring IoC 컨테이너를 나타냅니다 . 여기서 BeanFactory 는 Spring 컨테이너에 액세스하기위한 루트 인터페이스입니다. Bean자세히보기 »

@Component 대 @Repository 및 @Service in Spring

1. 소개 이 빠른 자습서에서는 Spring Framework에서 @Component, @Repository, @Service 주석 간의 차이점에 대해 알아 봅니다 . 2. 스프링 주석 대부분의 일반적인 애플리케이션에는 데이터 액세스, 프레젠테이션, 서비스, 비즈니스 등과 같은 고유 한 계층이 있습니다. 그리고 각 층에는 다양한 콩이 있습니다. 간단히 말해, 자동으로 감지하기 위해 Spring은 클래스 경로 스캐닝 주석을 사용 합니다. 그런 다음 ApplicationContext에 각 빈을 등록합니다 . 다음은 이러한 주석 중 몇 가지에 대한 간략한 개요입니다. @Component자세히보기 »

Java의 명령 줄 인수

1. 소개 인수를 사용하여 명령 줄에서 응용 프로그램을 실행하는 것은 매우 일반적입니다. 특히 서버 측에서. 일반적으로 우리는 애플리케이션이 모든 실행에서 동일한 작업을 수행하는 것을 원하지 않습니다. 어떤 방식 으로든 동작을 구성하려고합니다. 이 짧은 자습서에서는 Java에서 명령 줄 인수를 처리하는 방법을 살펴 봅니다. 2. Java에서 명령 줄 인수에 액세스 이후 주요 방법은 Java 응용 프로그램의 진입 점입니다, JVM은 인수를 통해 명령 줄 인수를 전달합니다. 전통적인 방법은 String 배열 을 사용하는 것입니다 . public static void main(String[]자세히보기 »

Spring REST API로 Swagger 2 설정

보안 상단 방금 Spring Security 5의 새로운 OAuth2 스택에 초점을 맞춘 전체 자료를 포함하여 새로운 Learn Spring Security 과정을 발표했습니다. >> 코스 레스트 Top을 확인하세요방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 개요 요즘에는 프런트 엔드 및 백 엔드 구성 요소가 종종 웹 응용 프로그램을 분리합니다. 일반적으로 API를 프런트 엔드 구성 요소 또는 타사 앱 통합을위한 백 엔드 구성 요소로 노출합니다. 이러한 시나리오에서는 백엔드 API에 대자세히보기 »

HttpURLConnection을 사용하여 JSON POST 요청 만들기

1. 개요 이 자습서에서는 HttpURLConnection을 사용하여 JSON POST 요청을 만드는 방법을 보여줍니다 . 2. HttpURLConnection을 사용 하여 JSON POST 요청 작성 2.1. URL 개체 만들기 HTTP POST 메서드를 통해 JSON 데이터를 받아들이는 대상 URI 문자열 로 URL 객체를 생성 해 보겠습니다 . URL url = new URL ("//reqres.in/api/users"); 2.2. 연결 열기 위의 URL 객체에서 openConnection 메서드를 호출 하여 HttpURLConnection 객체 를 가져올 수 있습니다. 추상 클래스이므로 Http자세히보기 »

Java ArrayDeque 소개

1. 개요 이 튜토리얼에서는 Deque 인터페이스 의 구현 인 Java의 ArrayDeque 클래스 를 사용하는 방법을 보여줍니다 . 의 ArrayDeque이 (또한 "ArrayDeck"로 발음에 "배열 덱"로 알려진 것은) 우리가 추가 또는 양쪽에서 요소를 제거 할 수 있습니다 가변 장 배열의 특별한 종류이다. 의 ArrayDeque 구현은로 사용할 수 있습니다 스택 (후입 선출) 또는 대기열 (선입 선출). 2. API 살펴보기 각 작업에 대해 기본적으로 두 가지 옵션이 있습니다. 첫 번째 그룹은 작업이 실패 할 경우 예외를 발생시키는 메서드로 구성됩니다. 다른 그룹은 상태 또는 값을 반환합니다. 자세히보기 »

Java 스트림으로 숫자 합산

1. 소개 이 빠른 자습서에서는 Stream API를 사용하여 정수 합계를 계산하는 다양한 방법을 보여줍니다 . 간단하게하기 위해 예제에서는 정수를 사용합니다. 그러나 long과 double에도 동일한 방법을 적용 할 수 있습니다. 2. Stream.reduce () 사용 Stream.reduce () 는 stream의 요소에 대해 감소 를 수행 하는 터미널 작업입니다 . 이항 연산자 (누산기)를 스트림의 각 요소에 적용합니다. 첫 번째 피연산자는 이전 응용 프로그램의 반환 값이고 두 번째 피연산자는 현재 스트림 요소입니다. 사용하는 첫 번째 방법으로 감소 (자세히보기 »

Spring MVC와 @ModelAttribute 주석

1. 개요 가장 중요한 Spring-MVC 주석 중 하나는 @ModelAttribute 주석입니다. @ModelAttribute는 명명 된 모델 속성에 메서드 매개 변수 또는 메서드 반환 값을 결합하는 주석과 후 웹보기를 제공합니다. 다음 예에서는 회사 직원이 제출 한 양식이라는 공통 개념을 통해 주석의 유용성과 기능을 보여줍니다. 2. 깊이 있는 @ModelAttribute 소개 단락에서 알 수 있듯이 @ModelAttribute 는 메서드 매개 변수 또는 메서드 수준에서 사용할 수 있습니다. 2.1 방법 수준에서 어노테이션이 메소드 레벨에서 사용되면 해당 메소드의 목적이 하나 이상의 모델 속성을 추가하는 것임을 나타냅니다. 이러한 메서드는 @RequestMapping 메서드와자세히보기 »

자바의 익명 클래스

1. 소개 이 튜토리얼에서는 Java의 익명 클래스를 고려할 것입니다. 인스턴스를 선언하고 생성하는 방법을 설명합니다. 또한 그 속성과 한계에 대해 간략하게 설명합니다. 2. 익명 클래스 선언 익명 클래스는 이름이없는 내부 클래스입니다. 이름이 없기 때문에 익명 클래스의 인스턴스를 만드는 데 사용할 수 없습니다. 결과적으로 사용 시점에서 단일 표현식으로 익명 클래스를 선언하고 인스턴스화해야합니다. 기존 클래스를 확장하거나 인터페이스를 구현할 수 있습니다. 2.1. 클래스 확장 존재하는 클래스에서 익명 클래스를 인스턴스화 할 때 다음 구문을 사용합니다.자세히보기 »

JUnit 4 및 5에서 예외 발생 여부 확인

1. 소개 이 빠른 튜토리얼에서는 JUnit 라이브러리를 사용하여 예외가 발생했는지 테스트하는 방법을 살펴볼 것입니다. 물론 JUnit 4와 JUnit 5 버전을 모두 다룰 것입니다. 2. JUnit 5 JUnit 5 Jupiter assertions API는 예외를 주장하기위한 assertThrows 메소드를 도입했습니다 . 이것은 예상되는 예외의 유형과 람다 표현식을 통해 테스트중인 코드를 전달할 수 있는 실행 가능 기능 인터페이스를 취합니다 . @Test public void whenExceptionThrown_thenAssertionSucceeds() { Exception exception =자세히보기 »

Java에서 배열 정렬

1. 개요 이 튜토리얼에서는 오름차순 및 내림차순으로 배열을 정렬하는 일반적인 방법에 대해 설명합니다. Java의 Arrays 클래스 정렬 방법을 사용 하고 배열 값을 정렬하기 위해 자체 Comparator 를 구현하는 방법을 살펴 보겠습니다 . 2. 개체 정의 시작하기 전에이 자습서 전체에서 정렬 할 몇 가지 배열을 빠르게 정의하겠습니다. 먼저 int 배열과 문자열 배열을 만듭니다 . int[] numbers = new int[] { -8, 7, 5, 9, 10, -2, 3 }; String[] strings = new Str자세히보기 »

자바의 마커 인터페이스

1. 소개 이 빠른 자습서에서는 Java의 마커 인터페이스에 대해 알아 봅니다. 2. 마커 인터페이스 마커 인터페이스는 내부에 메서드 나 상수가없는 인터페이스입니다 . 객체 에 대한 런타임 유형 정보를 제공 하므로 컴파일러와 JVM은 객체에 대한 추가 정보를 갖습니다 . 마커 인터페이스는 태깅 인터페이스라고도합니다. 마커 인터페이스는 여전히 사용 중이지만 코드 냄새를 가리킬 가능성이 높으므로 신중하게 사용해야합니다. 그 주된 이유는 마커가 어떤 동작도 정의하지 않기 때문에 인터페이스가 나타내는 것에 대한 선을 흐리게하기 때문입니다. 최신 개발에서는 일부 동일한 문제를 해결하기 위해 주석을 선호합니다. 3. JDK 마자세히보기 »

JVM 가비지 수집기

1. 개요 이 빠른 자습서에서는 다양한 JVM 가비지 컬렉션 (GC) 구현 의 기본 사항을 보여줍니다 . 또한 애플리케이션에서 특정 유형의 가비지 컬렉션을 활성화하는 방법을 알아 봅니다. 2. 가비지 컬렉션에 대한 간략한 소개 이름에서 가비지 컬렉션 은 메모리에서 가비지를 찾고 삭제하는 것처럼 보입니다 . 그러나 실제로 가비지 콜렉션 은 JVM 힙 공간에서 사용 가능한 모든 오브젝트를 추적하고 사용하지 않는 오브젝트를 제거합니다. 간단히 말해서 GC 는 Mark 및 Sweep이라는 두 가지 간단한 단계로 작동합니다. Mark – 가비지 수집기가 사용중인 메모리와 그렇지 않은 메모리를 식별하는 곳입니다. Sweep – 이 단계는 "마크"단계에서 식별 된 개체를 제거합니다. 장점 : 사용되지 자세히보기 »

Java 프로파일 러 가이드

1. 개요 때때로 그냥 실행되는 코드를 작성하는 것만으로는 충분하지 않습니다. 메모리 할당 방법, 한 코딩 접근 방식을 다른 방식에 비해 사용했을 때의 결과, 동시 실행의 의미, 성능 향상 영역 등과 같이 내부적으로 일어나는 일을 알고 싶을 수 있습니다.이를 위해 프로파일 러를 사용할 수 있습니다. Java Profiler는 JVM 수준에서 Java 바이트 코드 구성 및 작업 을 모니터링 하는 도구입니다 . 이러한 코드 구성 및 작업에는 개체 생성, 반복 실행 (재귀 호출 포함), 메서드 실행, 스레드 실행 및 가비지 수집이 포함됩니다. 이 기사에서는 JProfiler, YourKit, Java자세히보기 »

Spring의 @Scheduled Annotation

1. 개요 이 튜토리얼에서는 Spring @Scheduled 주석 을 사용하여 작업을 구성하고 예약하는 방법을 설명합니다. @Scheduled 로 메서드에 주석을 달기 위해 따라야하는 간단한 규칙은 다음과 같습니다. 메서드는 void 반환 유형을 가져야합니다. 메소드는 매개 변수를 허용하지 않아야합니다. 2. 예약 지원 활성화 Spring에서 스케줄링 작업 및 @Scheduled 주석에 대한 지원을 활성화하기 위해 Java enable-style 주석을 사용할 수 있습니다. @Configuration @EnableScheduling 자세히보기 »

Java 배열에서 합계 및 평균 찾기

1. 소개 이 빠른 자습서에서는 Java 표준 루프와 Stream API 를 모두 사용하여 배열의 합계 및 평균을 계산하는 방법을 다룹니다 . 2. 배열 요소의 합계 찾기 2.1. For 루프를 사용한 합계 배열에있는 모든 요소의 합을 찾으려면 배열을 반복하고 각 요소를 누적 합계에 추가하면됩니다.변하기 쉬운. 이것은 매우 간단하게 0 의 합 으로 시작 하여 배열에 각 항목을 추가합니다. public static int findSumWithoutUsingStream(int[] array) { int sum = 0; for (int value : array) { sum += value; } return sum; } 2.2. Java Strea자세히보기 »

자바 동시성 인터뷰 질문 (+ 답변)

이 기사는 시리즈의 일부입니다. • Java Collections 인터뷰 질문 • 자바 타입 시스템 인터뷰 질문 • Java 동시성 인터뷰 질문 (+ 답변) (현재 기사) • Java 클래스 구조 및 초기화 인터뷰 질문 • 자바 8 인터뷰 질문 (+ 답변) • 자바 인터뷰 질문의 메모리 관리 (+ 답변) • Java Generics 인터뷰 질문 (+ 답변) • Java Flow Control 인터뷰 질문 (+ 답변) • Java 예외 인터뷰 질문 (+ 답변) • Java Annotations 인터뷰 질문 (+ 답변) • 상위 봄 프레임 워크 인터뷰 질문 1. 소개 Java의 동시성은 기술 인터뷰 중에 제기되는 가장 복잡하고 고급 주제 중 하나입니다. 이 기사에서는 접할 수있는 주제에 대한 일부 인터뷰 질문에 대한 답변을 제공합니다. Q1. 프로세스와 스레드의 차이점은 무엇입니까? 프로세스와 스레드는 모두 동시성의 단위이지만 근본적인 차이점이 있습니다. 프로세스는 공통 메모리를 공유하지 않는 반면 스레드는 공유합니다. 운영 체제의 관점에서 볼 때 프로세스는 자체 가상 메모리 공간에서 실행되는 독립적 인 소프트웨어입니다. 모든 멀티자세히보기 »

자바의 NumberFormatException 이해

1. 소개 Java는 문자열 을 숫자 유형으로 변환 할 수없는 경우 확인되지 않은 예외 인 NumberFormatException을 발생 시킵니다. 체크되지 않았기 때문에 Java는이를 처리하거나 선언하도록 강요하지 않습니다. 이 빠른 자습서에서는 Java에서 NumberFormatException의 원인 과이를 방지하거나 처리하는 방법을 설명하고 시연 합니다 . 2. NumberFormatException의 원인 NumberFormatException 을 일으키는 다양한 문제가 있습니다 . 예를 들어, Java의 일부 생성자와 메소드는이 예외를 발생시킵니다. 아래 섹션에서 대부분에 대해 설명합니다. 2.1. 생성자에게 전달 된 숫자가 아닌 데이터 숫자가 아닌 데이터 로 Integer 또는 Double 객체 를 생성하려는 시도자세히보기 »

Java Array와 ArrayList에 요소 추가

1. 개요 이 튜토리얼에서는 Java 배열과 표준 ArrayList 간의 메모리 할당에 대한 유사점과 비 유사점을 간략하게 살펴 봅니다 . 또한 배열 및 ArrayList에 요소를 추가하고 삽입하는 방법을 알아 봅니다 . 2. 자바 배열과 ArrayList Java 배열은 언어에서 제공하는 기본 데이터 구조입니다. 대조적으로 ArrayList 는 배열에 의해 지원되는 List 인터페이스 의 구현이며 Java Collections Framework에서 제공됩니다. 2.1. 요소 액세스 및 수정 대괄호 표기법을 사용하여 배열 요소에 액세스하고 수정할 수 있습니다. System.out.println(anArray[1]); anArray[1] =자세히보기 »

Spring의 RequestBody 및 ResponseBody 주석

1. 소개 이 빠른 자습서에서는 Spring @RequestBody 및 @ResponseBody 주석에 대한 간략한 개요를 제공합니다 . 2. @RequestBody 간단히 말해, @RequestBody 어노테이션은지도 HttpRequest를 자동으로 직렬화 가능, 전송 또는 도메인 개체에 몸을 인바운드의 HttpRequest를 자바 객체에 몸을. 먼저 Spring 컨트롤러 메서드를 살펴 보겠습니다. @PostMapping("/request") public ResponseEntity postController( @RequestBody LoginForm loginForm) { exampleService.fakeA자세히보기 »

자바의 폭 우선 검색 알고리즘

1. 개요 이 튜토리얼에서는 깊이 우선이 아닌 폭 우선 노드를 통해 이동하여 트리 또는 그래프에서 노드를 검색 할 수있는 Breadth-First Search 알고리즘에 대해 학습합니다. 먼저, 나무와 그래프에 대한이 알고리즘에 대한 약간의 이론을 살펴 보겠습니다. 그 후 Java로 구현 된 알고리즘에 대해 살펴 보겠습니다. 마지막으로 시간 복잡성을 다룰 것입니다. 2. 폭 우선 검색 알고리즘 BFS (Breadth-First Search) 알고리즘의 기본 접근 방식은 자식보다 먼저 이웃을 탐색하여 트리 또는 그래프 구조로 노드를 검색하는 것입니다. 먼저이 알고리즘이 트리에서 어자세히보기 »

자바의 깊이 우선 검색

1. 개요 이 자습서에서는 Java의 깊이 우선 검색을 살펴 봅니다. 깊이 우선 검색 (DFS)은 트리 및 그래프 데이터 구조 모두에 사용되는 순회 알고리즘입니다. 깊이 우선 검색은 다른 분기를 탐색하기 위해 이동하기 전에 각 분기에서 깊숙이 이동합니다 . 다음 섹션에서는 먼저 트리와 그래프에 대한 구현을 살펴 보겠습니다. Java에서 이러한 구조를 구현하는 방법을 보려면 이진 트리 및 그래프에 대한 이전 자습서를 참조하십시오. 2. 나무 깊이 우선 검색 DFS를 사용하여 트리를 순회하는 세 가지 순서가 있습니다. 순회 선주문 Inorder Traversal 포스트 자세히보기 »

Spring으로 Hibernate 5 부트 스트래핑

1. 개요 이 기사에서는 Java 및 XML 구성을 사용하여 Hibernate 5를 Spring 으로 부트 스트랩 하는 방법에 대해 설명 합니다. 이 기사는 Spring MVC에 중점을 둡니다. Hibernate를 사용한 Spring Boot 기사는 Spring Boot에서 Hibernate를 사용하는 방법을 설명합니다. 2. 봄 통합 네이티브 Hibernate API 로 SessionFactory 를 부트 스트랩하는 것은 약간 복잡하고 코드 몇 줄이 필요합니다 (정말 필요한 경우 공식 문서를 참조하십시오). 다행히, 봄 지원은 부트 스트랩 SessionFa자세히보기 »

Java에서 SOAP 웹 서비스 호출

1. 개요 이 튜토리얼에서는 JAX-WS RI를 사용하여 Java에서 SOAP 클라이언트를 빌드하는 방법을 배웁니다 . 먼저 wsimport 유틸리티를 사용하여 클라이언트 코드를 생성 한 다음 JUnit을 사용하여 테스트합니다. 시작하는 분들을 위해 JAX-WS 소개는 주제에 대한 훌륭한 배경 지식을 제공합니다. 2. 웹 서비스 클라이언트 구축을 시작하기 전에 서버가 필요합니다. 이 경우 JAX-WS 웹 서비스를 노출하는 서버입니다. 이 튜토리얼의 목적을 위해 우리는 이름이 주어진 국가의 데이터를 가져 오는 웹 서비스를 사용할 것입니다. 2.1. 구현 요약 우리는 클라이언트 구축에 초점을 맞추고 있으므로 서비스 구현 세부 사항에 대해서는 다루지 않을 자세히보기 »

Java StringTokenizer에 대한 빠른 가이드

1. 개요 이 빠른 기사에서는 Java의 기본 클래스 인 StringTokenizer를 살펴 보겠습니다 . 2. StringTokenizer 있고 StringTokenizer 클래스는 우리가 분할하는 데 도움이 문자열을 여러 개의 토큰으로. StreamTokenizer 는 유사한 기능을 제공하지만 토큰 화 방법은 StreamTokenizer 클래스에서 사용하는 방법보다 훨씬 간단합니다 . StringTokenizer의 메서드는 식별자, 숫자 및 인용 된 문자열을 구분하지 않으며 주석을 인식하고 건너 뛰지 않습니다. 구분 기호 집합 (토큰을 구분하는 문자)은 생성시 또는 토큰별로 지정할 수 있습니다. 3. StringTokenizer 사용 StringTokenizer 를 사용하는 가장 간단한 예는 지정된 구자세히보기 »

Java에서 Jar 파일 생성 및 실행 가이드

1. 개요 일반적으로 여러 Java 클래스 파일을 단일 아카이브 파일로 묶는 것이 편리합니다. 이 튜토리얼에서는 Java에서 jar (또는 J ava AR chive) 파일 작업에 대한 내용 을 다룰 것 입니다. 특히, 우리는 간단한 응용 프로그램을 가져 와서 jar로 패키징하고 실행하는 다양한 방법을 탐색 할 것입니다. 또한 도중에 jar의 매니페스트 파일을 쉽게 읽는 방법 과 같은 몇 가지 호기심에 답할 것입니다. 2. 자바 프로그램 설정 실행 가능한 jar 파일을 만들려면 애플리케이션에 기본 메서드 가있는 클래스가 있어야합니다 . 이 클래스는 애플리케이션에 대한 진입 점을 제공합니다. public static void main(String[] args) { System.o자세히보기 »

Java에서 링크 된 목록 반전

1. 소개 이 자습서에서는 Java에서 두 개의 연결 목록 반전 알고리즘을 구현합니다. 2. 연결된 목록 데이터 구조 연결 목록은 각 요소의 포인터가 순서를 결정하는 선형 데이터 구조입니다. 연결 목록의 각 요소에는 목록 데이터를 저장하는 데이터 필드와 시퀀스의 다음 요소를 가리키는 포인터 필드가 있습니다. 또한 헤드 포인터를 사용 하여 연결 목록의 시작 요소를 가리킬 수 있습니다 . 연결 목록을 뒤집은 후 헤드 는 원래 연결 목록의 마지막 요소를 가리키고 각 요소의 포인터는 원래 연결 목록의 이전 요소를 가리 킵니다. Java 에는 List 및 Deque 인터페이스 의 이중 링크 목록 구현을 제공 하는 LinkedList 클래스가 있습니다. 그러나이 자습서에서는 일반적인 단일 연결 목록 데이터 구조를 사용합니다.자세히보기 »

ClassNotFoundException 대 ​​NoClassDefFoundError

1. 소개 JVM이 클래스 경로에서 요청 된 클래스를 찾을 수없는 경우 ClassNotFoundException 및 NoClassDefFoundError 가 모두 발생합니다. 익숙해 보이지만이 둘 사이에는 몇 가지 핵심 차이점이 있습니다. 이 자습서에서는 발생 원인과 해결 방법에 대해 설명합니다. 2. ClassNotFoundException ClassNotFoundException 은 응용 프로그램이 정규화 된 이름을 통해 클래스를로드하려고 시도하고 클래스 경로에서 해당 정의를 찾을 수없는 경우 발생하는 확인 된 예외입니다. 이는 주로 Class.forName () , ClassL자세히보기 »

자바의 불변 객체

1. 개요 이 튜토리얼에서는 객체를 불변으로 만드는 이유, Java에서 불변성을 달성하는 방법, 그렇게함으로써 얻을 수있는 이점에 대해 알아 봅니다. 2. 불변 객체 란 무엇입니까? 불변 객체는 완전히 생성 된 후에도 내부 상태가 일정하게 유지 되는 객체입니다 . 이는 불변 객체의 공개 API가 전체 수명 동안 동일한 방식으로 작동한다는 것을 보장한다는 것을 의미합니다. String 클래스를 살펴보면 API가 replace 메서드 로 변경 가능한 동작을 제공하는 것처럼 보이지만 원래 String 은 변경되지 않음을 알 수 있습니다. String name = "baeldung"; String newNam자세히보기 »

Spring @RequestParam 주석

1. 개요 이 빠른 튜토리얼에서 우리는 Spring의 @RequestParam 주석과 그 속성을 살펴볼 것 입니다. 간단히 말해서 @RequestParam 을 사용 하여 쿼리 매개 변수, 양식 매개 변수, 요청에서 파일까지 추출 할 수 있습니다 . 2. 간단한 매핑 id 라는 쿼리 매개 변수를 받는 / api / foos 엔드 포인트가 있다고 가정 해 보겠습니다 . @GetMapping("/api/foos") @ResponseBody public String getFoos(@RequestParam String id) { return "ID: " + id; } 이 예에서는 @RequestParam 을 사용하여 id 쿼리 매개 변수 를 추출했습니다 . 간단한 GET 요청은 getFoos를 호출 합니다 . //loca자세히보기 »

스트림을 사용하여지도 작업

1. 소개 이 튜토리얼에서, 우리는 자바를 사용하는 방법에 대한 몇 가지 예 논의 할 것이다 스트림 들Map 으로 작업 합니다. 이러한 연습 중 일부는 양방향 지도 데이터 구조를 사용하여 해결할 수 있다는 점에 주목할 가치가 있지만 여기서는 기능적 접근 방식에 관심이 있습니다. 먼저 Maps 및 Stream 작업에 사용할 기본 아이디어를 설명합니다 . 그런 다음 Stream 을 사용하여 Maps 및 구체적인 솔루션과 관련된 몇 가지 다른 문제를 제시합니다 . 2. 기본 아이디어 주목해야 할 주요 사항은 Stream 은 Collection 에서 쉽게 얻을 수있는 요소의 시퀀스라는 것입니다 . 맵 은 순서없이 키에서 값으로 매핑하는 구조가 다릅니자세히보기 »

스프링 코어 주석

이 기사는 시리즈의 일부입니다. • Spring Core Annotations (현재 기사) • Spring Web Annotations • 스프링 부트 주석 • 봄 예약 주석 • 스프링 데이터 주석 • Spring Bean 주석 1. 개요 org.springframework.beans.factory.annotation 및 org.springframework.context.annotation 패키지 의 주석을 사용하여 Spring DI 엔진의 기능을 활용할 수 있습니다 . 우리는 종종이를 "Spring core annotati자세히보기 »

자바에서 선택 정렬

1. 소개 이 튜토리얼에서는 Selection Sort를 배우고 Java에서 구현을 확인하고 성능을 분석합니다. 2. 알고리즘 개요 선택 정렬 은 정렬 되지 않은 배열 의 첫 번째 위치에 있는 요소로 시작 하여 가장 작은 요소를 찾기 위해 후속 요소를 검색합니다 . 일단 발견되면 가장 작은 요소가 첫 번째 위치의 요소와 교체됩니다. 그런 다음 알고리즘은 두 번째 위치의 요소로 이동하고 후속 요소를 검색하여 두 번째로 작은 요소의 인덱스를 찾습니다. 발견되면 두 번째로 작은 요소가 두 번째 위치의 요소와 교체됩니다. 이 프로세스는 배열의 n-1 번째 요소에 도달 할 때자세히보기 »

자바 프리미티브 소개

1. 개요 Java 프로그래밍 언어에는 8 개의 기본 데이터 유형이 있습니다. 이 기사에서는 프리미티브가 무엇인지 기억하고 살펴볼 것입니다. 2. 원시 데이터 유형 자바에 정의 된 8 개의 기본 요소는 int , byte , short , long , float , double , boolean , char – 객체로 간주되지 않고 원시 값을 나타냅니다. 스택에 직접 저장됩니다 (Java의 메모리 관리에 대한 자세한 내용은이 기사를 확인하십시오). 스토리지 크기, 기본값 및 각 유형 사용 방법의 예를 살펴 보겠습니다. 빠른 참조부터 시작하겠습니다. 유형 크기 (비트) 최저한의 최고 예 바이트 8 -27 27 ~ 1 바이트 b 자세히보기 »

자바의 MD5 해싱

자바 탑 방금 Spring 5 및 Spring Boot 2의 기본 사항에 초점을 맞춘 새로운 Learn Spring 과정을 발표했습니다 . >> 과정 확인 1. 개요 MD5는 널리 사용되는 암호화 해시 함수로 128 비트의 해시를 생성합니다. 이 기사에서는 다양한 Java 라이브러리를 사용하여 MD5 해시 를 생성하는 다양한 접근 방식을 살펴 봅니다 . 2. MessageDigest 클래스를 사용하는 MD5 java.security.MessageDigest 클래스 에는 해싱 기능이 있습니다 . 아이디어는 먼저 인수로 사용할 알고리즘의 종류로 MessageDigest 를 인스턴스화 하는 것입니다. MessageDigest.getInstance(String Algorithm) 그런 다음 update 자세히보기 »

자바에서 객체 비교

1. 소개 객체 비교는 객체 지향 프로그래밍 언어의 필수 기능입니다. 이 튜토리얼에서는 객체를 비교할 수있는 Java 언어의 일부 기능을 살펴 보겠습니다. 또한 외부 라이브러리에서 이러한 기능을 살펴볼 것입니다. 2. == 및 ! = 연산자 두 개의 Java 객체가 각각 동일한 지 여부를 알 수 있는 == 및 ! = 연산자 부터 시작하겠습니다 . 2.1. 기초 요소 기본 유형의 경우 동일하다는 것은 동일한 값을 갖는 것을 의미합니다. assertThat(1 == 1).isTrue(); 자동 언 박싱 덕분에 기본 값을 래퍼 유형 대응 항목과 비교할 때도 작동합니다 . Integer a = new Integer(1); assertThat(1 == a).isTrue(); 두 정수자세히보기 »

Java로 이메일 보내기

1. 개요 이 빠른 자습서에서는 핵심 Java 메일 라이브러리를 사용하여 첨부 파일이 있거나없는 전자 메일을 보내는 방법을 살펴 보겠습니다. 2. 프로젝트 설정 및 종속성 이 기사에서는 Java 메일 라이브러리에 종속 된 간단한 Maven 기반 프로젝트를 사용합니다. javax.mail mail 1.5.0-b01 최신 버전은 여기에서 찾을 수 있습니다. 3. 일반 텍스트 및 HTML 이메일 보내기 먼저 이메일 서비스 제공 업체의 자격 증명으로 라이브러리를 구성해야합니다. 그런 다음 보낼 메시지를 구성하는 데 사용할 세션 을 만듭니다 . 구성은 Java 속성 개체 를 통해 이루어집니다 . 자세히보기 »

Spring 및 Spring Boot가있는 속성

1. 개요 이 튜토리얼은 Java 구성 및 @PropertySource 를 통해 Spring에서 속성을 설정하고 사용하는 방법을 보여 줍니다 . 또한 Spring Boot에서 속성이 어떻게 작동하는지 살펴볼 것입니다. 2. 주석을 통해 속성 파일 등록 Spring 3.1은 또한 환경에 속성 소스를 추가하기위한 편리한 메커니즘으로 새로운 @PropertySource 주석 을 도입 합니다. 이 주석을 @Configuration 주석 과 함께 사용할 수 있습니다 . @Configuration @PropertySource("classpath:foo.properties") public class PropertiesWithJavaConfig { //... } 새 속성 파일을 등록하는 또 다른 매우 유용한 방법은 플레이스 홀더를 사용하는 것입니다.이를 통해 런타자세히보기 »

자바 리플렉션 가이드

1. 개요 이 기사에서는 클래스, 인터페이스, 필드 및 메서드의 런타임 속성을 검사하거나 수정할 수있는 Java 리플렉션을 살펴 봅니다. 이것은 컴파일 타임에 이름을 알지 못할 때 특히 유용합니다. 또한 리플렉션을 사용하여 새 개체를 인스턴스화하고, 메서드를 호출하고, 필드 값을 가져 오거나 설정할 수 있습니다. 2. 프로젝트 설정 Java 리플렉션을 사용하기 위해 특수 jar , 특수 구성 또는 Maven 종속성 을 포함 할 필요가 없습니다 . JDK는 특별히이 목적을 위해 java.lang.reflect 패키지에 번들로 제공되는 클래스 그룹과 함께 제공됩니다 . 따라서 우리가해야 할 일은 다음과 같이 코드를 가져 오는 것입니다. import java.lang.reflect.*; 그리고 우리는 갈 수 있습니다. 인스턴스의 클자세히보기 »

JAX-RS는 단순한 API입니다!

1. 개요 REST 패러다임은 꽤 오랫동안 사용되어 왔으며 여전히 많은 관심을 받고 있습니다. RESTful API는 여러 가지 방법으로 Java에서 구현 될 수 있습니다. Spring, JAX-RS를 사용할 수 있으며, 훌륭하고 용감한 경우 자체 베어 서블릿을 작성할 수도 있습니다. 필요한 것은 HTTP 메서드를 노출하는 기능뿐입니다. 나머지는 API를 호출 할 때이를 구성하는 방법과 클라이언트를 안내하는 방법에 관한 것입니다. 제목에서 알 수 있듯이이 기사에서는 JAX-RS를 다룰 것입니다. 그러나 "단지 API"는 무엇을 의미합니까? 이는 여기서 초점이 JAX-RS와 그 구현 간자세히보기 »

자바에서 실행 가능 vs. 호출 가능

1. 개요 Java 초기부터 멀티 스레딩은 언어의 주요 측면이었습니다. Runnable 은 다중 스레드 작업을 나타 내기 위해 제공되는 핵심 인터페이스이며 Callable 은 Java 1.5에 추가 된 Runnable 의 개선 된 버전입니다 . 이 기사에서는 두 인터페이스의 차이점과 응용 프로그램을 살펴 보겠습니다. 2. 실행 메커니즘 두 인터페이스 모두 여러 스레드에서 실행할 수있는 작업을 나타내도록 설계되었습니다. 실행 가능한 작업은 Thread 클래스 또는 ExecutorService를 사용하여 실행할 수있는 반면 Callables 는 후자를 사용하여 실행할 수 있습니다. 3. 반환 값 이러한 인터페이스가 반환 값을 처리하는 방식에 대해 자세히자세히보기 »

최대 절전 모드 : 저장, 지속, 업데이트, 병합, saveOrUpdate

1. 소개 이 기사에서는 세션 인터페이스 의 여러 메소드 인 save , persist , update , merge , saveOrUpdate 간의 차이점에 대해 설명합니다 . 이것은 Hibernate에 대한 소개가 아니며 구성, 객체 관계형 매핑 및 엔티티 인스턴스 작업의 기본 사항을 이미 알고 있어야합니다. Hibernate에 대한 소개 기사를 보려면 Hibernate 4 with Spring에 대한 튜토리얼을 방문하십시오. 2. 지속성 컨텍스트 구현으로서의 세션 세션 인터페이스는 결국 데이터베이스에 데이터를 저장하는 결과 여러 가지 방법이 있습니다 유지 , 저장 , 갱신 , 병합 , 될 s자세히보기 »

Spring에서 지원되지 않는 요청 방법 (405)

1. 개요 이 빠른 기사는 개발자가 Spring MVC를 사용하여 특정 HTTP 동사에 대한 API를 노출하는 동안 직면하는 일반적인 오류 인 'Request Method not Supported – 405'에 초점을 맞추고 있습니다. 당연히이 오류의 일반적인 원인에 대해서도 설명합니다. 2. 요청 방법 기본 사항 일반적인 문제로 이동하기 전에 Spring MVC에 대해 배우기 시작했다면 여기에 좋은 소개 기사가 있습니다. 또한 기본 사항을 매우 빠르게 살펴보고 Spring에서 지원하는 요청 메서드와 여기에서 관심있는 몇 가지 공통 클래스를 이해하겠습니자세히보기 »

Java에서 두 날짜의 차이점

1. 개요 이 빠른 글에서는 Java에서 두 날짜 간의 차이를 계산할 수있는 다양한 가능성을 살펴 보겠습니다. 2. 핵심 자바 2.1. java.util.Date 를 사용하여 일수 차이 찾기 핵심 Java API를 사용하여 계산을 수행하고 두 날짜 사이의 일 수를 결정하는 것으로 시작하겠습니다. @Test public void givenTwoDatesBeforeJava8_whenDifferentiating_thenWeGetSix() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH); Dat자세히보기 »

Java의 TreeSet 가이드

1. 개요 이 기사에서는 Java Collections Framework의 필수 부분과 가장 널리 사용되는 Set 구현 중 하나 인 TreeSet을 살펴 보겠습니다 . 2. TreeSet 소개 간단히 말해, TreeSet 은 AbstractSet 클래스 를 확장 하고 NavigableSet 인터페이스를 구현 하는 정렬 된 컬렉션입니다 . 다음은이 구현의 가장 중요한 측면에 대한 간략한 요약입니다. 고유 한 요소를 저장합니다. 요소의 삽입 순서를 유지하지 않습니다. 요소를 오름차순으로 정렬합니다. 스레드로부터 안전하지 않습니다. 이 구현에서 객체는 자연 순서에 따라 오름자세히보기 »

스프링 보안 양식 로그인

1. 소개 이 글은 Login with Spring Security 에 초점을 맞출 것 입니다. 로그인 메커니즘과 함께 웹 애플리케이션을 설정하는 데 필요한 부분이므로 간단한 이전 Spring MVC 예제를 기반으로 빌드 할 것입니다. 2. Maven 종속성 Spring Boot로 작업 할 때 spring-boot-starter-security 스타터는 spring-security-core , spring-security-web 및 spring-security-config 와 같은 모든 종속성을 자동으로 포함합니다 . org.springframework.boot spring-boot-starter-security 2.3.3.RELEASE Spring Boot를 사용하지 않는 경우 필요한 모든 종속성을 추가하는 방법을 설명하는 Spring Security with Maven 문서를 참조하세요. 표준 spring-security-web 및 spring-자세히보기 »

JPA의 일대일 관계

1. 소개 이 튜토리얼에서는 JPA에서 일대일 매핑을 만드는 다양한 방법을 살펴 보겠습니다. 우리는 Hibernate 프레임 워크에 대한 기본적인 이해가 필요합니다. 그래서 추가적인 배경 지식을 위해 우리의 Guide to Hibernate 5 with Spring을 확인하십시오. 2. 설명 사용자 관리 시스템을 구축 중이고 상사가 각 사용자의 우편 주소를 저장하도록 요청한다고 가정 해 보겠습니다. 사용자는 하나의 우편 주소를 가지며 우편 주소에는 한 명의 사용자 만 연결됩니다. 이것은 사용자 와 주소 엔터티 간의 일대일 관계의 예입니다 . 후속 섹션에서이를자세히보기 »

Ant 대 Maven 대 Gradle

이 기사는 시리즈의 일부입니다. • Gradle 소개 • Ant vs Maven vs Gradle (현재 기사) • 사용자 정의 Gradle 플러그인 작성 • Gradle에서 Fat Jar 만들기 1. 소개 이 기사에서는 JVM 생태계를 지배 한 세 가지 Java 빌드 자동화 도구 인 Ant, Maven 및 Gradle을 살펴 보겠습니다 . 각각을 소개하고 Java 빌드 자동화 도구가 어떻게 발전했는지 살펴 보겠습니다. 2. 아파치 앤트 처음에 Make는 자체 개발 솔루션 외에 사용할 수 있는 유일한 빌드 자동화 도구였습니다 . Make는 1976 년부터 사용되어 왔기 때문에 Java 초기에 J자세히보기 »