찾다
Javajava지도 시간Spring 프레임워크의 단순화된 사용법 소개

이 글은 Spring 프레임워크의 단순화된 사용법을 소개합니다. 이는 특정 참조 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Spring 프레임워크로서 주요 기능은 앱(애플리케이션) 기능을 만드는 여러 클래스를 관리하는 것입니다. 전체 앱의 초석이자 백본인 이러한 클래스를 빈이라고 합니다.

Bean, 즉 비즈니스 기능을 수행하는 클래스의 집합을 관리하려면 직접 새로 생성할 수 없으며 통일된 스케줄링이 부족합니다. 따라서 Spring은 통합 관리를 위해 이러한 Bean을 Spring 컨테이너로 전송하는 도구로 .xml 구성 파일을 매체로 사용하고 IoC(Inversion of Control)를 도구로 사용합니다.

이를 바탕으로 컨테이너에 빈을 던지기 위해서는 최소한 두 부분이 필요합니다:

빈에 해당하는 클래스 정의

간접 제어를 위한 .xml 구성 파일

두 부분이 필요한 이유 need는 이해하기 쉽습니다. 먼저, Bean 자체에 대한 정의가 있어야 합니다. 다음으로, Bean을 수락하는 방법을 Spring 컨테이너에 알려주어야 합니다. 이는 .xml 파일에 설명되어 있습니다.

예를 들어, 우리가 관리하려는 bean은 HelloWorld라고 하며 그 두 부분은 다음과 같습니다: applicationContext-src.xml:

<?xml  version="1.0" encoding="UTF-8"?>
<beans>
    
    <bean>        
        <property></property>
    </bean>  

</beans>

및 HelloWorld.java:

public class HelloWorld {
    private String message;     
    
    public void setMessage(String message) {       
        this.message  = message;    
    }     
    
    public void getMessage() {       
        System.out.println("Your Message : " + message);    
    } 
}

이 두 부분을 사용하면 Spring 컨테이너가 올바르게 bean을 수신할 수 있습니다. HelloWorld라는 이름이 붙었습니다.

이제 이 빈을 사용하려면 당연히 HelloWorld 빈을 직접 건드릴 수는 없습니다. 대신 이를 관리하는 Spring 컨테이너를 통해 빈을 가져온 다음 이 빈을 사용하여 직접 서비스해야 합니다.

예를 들어 MainApp.java라는 클래스는 이제 HelloWorld 빈의 서비스를 사용해야 합니다.

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {    
    
    @SuppressWarnings("resource")
    public static void main(String[] args) {       
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-src.xml");        
        HelloWorld obj = (HelloWorld) context.getBean("helloWorld");        
        obj.getMessage();    
    }
}

여기에는 두 부분이 있습니다.

먼저 구성 .xml의 위치에 따라 가져옵니다. file 여기서 Context인 Spring 컨테이너는 여러 Spring 컨테이너 중에서 가장 유명한 대변인으로 이해될 수 있다.

이 대변인을 확보한 후에는 자연스럽게 대변인에게 필요한 Bean HelloWorld를 요청할 수 있으므로 context.getBean() 메소드를 통해 필요한 Bean을 얻을 수 있습니다.

빈을 받으신 후 바로 사용하실 수 있습니다.

Spring 프레임워크의 시작점은 여러 기능 클래스(빈)에 대한 프록시 역할을 하고 이러한 빈을 자체 컨테이너로 통합하여 관리하는 것이 직관적이라는 것을 알 수 있습니다. Bean을 사용해야 하는 다른 클래스는 해당 에이전트를 통해 Bean을 얻어야 합니다.

논의해볼 만한 질문은 위의 내용이 매우 직관적이고 이해하기 쉬운데, 일반적인 Java 웹 개발에서 ApplicationContext에 대한 선언이 왜 그렇게 적다는 것입니다.

그 이유는 일반적인 J2EE 개발에서 Spring Context 선언이 사용자 코드에서 직접 수행되지 않고 web.xml에서 구성되기 때문입니다.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

여기서 ApplicationContext는 ContextLoaderListener 웹 앱의 도움으로 등록됩니다. .

또 다른 중요한 고려 사항은 다음과 같습니다.

코드에서 ApplicationContext를 직접 사용해서는 안 되며, Context를 사용하려면 구성 파일과 IoC를 동일하게 사용해야 합니다.



위 내용은 Spring 프레임워크의 단순화된 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault思否에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
SpringBoot Multi-Data 소스 구성에서 낮에는 데이터베이스 액세스가 낮고 밤에는 빠른 이유는 무엇입니까?SpringBoot Multi-Data 소스 구성에서 낮에는 데이터베이스 액세스가 낮고 밤에는 빠른 이유는 무엇입니까?Apr 19, 2025 pm 04:06 PM

SpringBoot 프로젝트의 데이터베이스 액세스 성능 문제 Multi-Data 소스 구성이 기사는 SpringBoot 프로젝트에서 멀티 데이터 소스 구성에 Atomikos를 사용하는 것을 목표로합니다 ...

NoclassDeffoundError Java Project가 JAR에 포장 된 후 나타납니다. JDK 버전 호환성 문제를 해결하는 방법은 무엇입니까?NoclassDeffoundError Java Project가 JAR에 포장 된 후 나타납니다. JDK 버전 호환성 문제를 해결하는 방법은 무엇입니까?Apr 19, 2025 pm 04:03 PM

Java 프로젝트를 실행 가능한 JAR 파일로 포장 할 때 NoclassDeffounderRor의 문제가 발생합니다. 많은 자바 개발자가 ...

Intellij 아이디어의 크래킹 프로세스를 분석하고 등록을 담당하는 LIB 또는 클래스를 찾는 방법은 무엇입니까?Intellij 아이디어의 크래킹 프로세스를 분석하고 등록을 담당하는 LIB 또는 클래스를 찾는 방법은 무엇입니까?Apr 19, 2025 pm 04:00 PM

프로그래밍 세계에서 Intellijidea Cracking의 분석 방법과 관련하여 Intellij ...

Java 및 Javacv를 사용하여 비디오 품질을 향상시키는 방법은 무엇입니까? 효과가 제한된 이유는 무엇입니까?Java 및 Javacv를 사용하여 비디오 품질을 향상시키는 방법은 무엇입니까? 효과가 제한된 이유는 무엇입니까?Apr 19, 2025 pm 03:57 PM

문제 소개 : 개선 된 비디오 품질은 비디오 처리의 중요한 부분입니다. 특히 저지방 비디오를 처리 할 때, Java 언어 사용 방법 및 ...

SpringBoot에서 @requestbody 주석을 가져 오려면 비 JSON 형식의 문자열 매개 변수를 올바르게 수신하는 방법은 무엇입니까?SpringBoot에서 @requestbody 주석을 가져 오려면 비 JSON 형식의 문자열 매개 변수를 올바르게 수신하는 방법은 무엇입니까?Apr 19, 2025 pm 03:54 PM

SpringBoot 응용 프로그램을 처리 할 때 종종 요청 매개 변수를 올바르게받는 방법에 대한 문제가 발생합니다. 특히 매개 변수 형식이 공통 JSON이 아닌 경우, 더 ...

Java에서 ConsperenthashMap을 선언 할 때 정적 키워드가 추가되는 데 어떤 영향을 미칩니 까?Java에서 ConsperenthashMap을 선언 할 때 정적 키워드가 추가되는 데 어떤 영향을 미칩니 까?Apr 19, 2025 pm 03:51 PM

Java 프로그래밍에서 Java에서 Concurrenthashmap을 선언 할 때 정적 추가의 영향, Consurenthashmap ...

사용자 정의 스레드 풀을 구성 할 때는 초기화 () 메소드를 구성하지 않으며 프로그램이 여전히 정상적으로 실행되는 이유는 무엇입니까?사용자 정의 스레드 풀을 구성 할 때는 초기화 () 메소드를 구성하지 않으며 프로그램이 여전히 정상적으로 실행되는 이유는 무엇입니까?Apr 19, 2025 pm 03:48 PM

사용자 정의 스레드 풀에서 초기화 () 메소드의 역할에 대한 자세한 설명 사용자 정의 스레드 풀을 구성 할 때 초기화 () 메소드가 있음을 알 수 있습니다. 매우...

곡선 통합 변환 : 왜 극지 좌표 변환 대신 y = sin (t)을 사용합니까?곡선 통합 변환 : 왜 극지 좌표 변환 대신 y = sin (t)을 사용합니까?Apr 19, 2025 pm 03:45 PM

곡선 통합의 가변 대체에 대한 질문 질문자는 곡선 통합 문제를 겪고 한 단계의 계산 결과가 혼동됩니다. 제목이 주어집니다 ...

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는