일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- programmers
- C언어
- 한정 분기
- php 프로그래밍 입문
- 스프링
- php 프로그래밍 입문 솔루션
- 페이코 추천인
- php
- 자바
- 파이썬
- 페이코 초대코드
- spring
- C
- php 프로그래밍 입문 예제
- JAVA SPRING
- Java
- 백준
- 플러터
- php 프로그래밍 입문 문제풀이
- 최단 경로
- 페이코 친구코드
- php 프로그래밍
- php 프로그래밍 입문 3판
- Flutter
- 자바 스프링
- 페이코 추천인코드
- SWEA
- 플러터 개발환경 설정
- 배열
- php 프로그래밍 입문 연습문제
Archives
- Today
- Total
02-02 06:48
ImJay
[Java Spring MVC] 컨트롤러로부터 받아온 값을 전역변수처럼 사용하기 본문
반응형
컨트롤러로부터 받아온 값을 프로젝트 내의 어떤 클래스든 사용하려면, 값을 저장하는 방법은 다양합니다. 이에 대한 예시를 몇 가지 들어보겠습니다.
1. 변수에 저장하기
public class MyController {
public void handleRequest(String data) {
// 데이터를 변수에 저장
String myData = data;
// 다른 클래스에서 변수 사용
MyService myService = new MyService();
myService.processData(myData);
}
}
public class MyService {
public void processData(String data) {
// 변수 사용
System.out.println("Data received: " + data);
}
}
가장 간단한 방법은 변수에 값을 저장하는 것입니다. 이 경우 변수의 스코프(scope)에 따라 다른 클래스에서 사용할 수 있는 경우와 제한되는 경우가 있습니다.
2. Singleton 패턴 적용하기
public class MyController {
public void handleRequest(String data) {
// Singleton 객체에서 데이터 저장
MyDataSingleton.getInstance().setData(data);
// 다른 클래스에서 Singleton 객체 사용
MyService myService = new MyService();
myService.processData();
}
}
public class MyService {
public void processData() {
// Singleton 객체에서 데이터 조회
String data = MyDataSingleton.getInstance().getData();
// 데이터 사용
System.out.println("Data received: " + data);
}
}
public class MyDataSingleton {
// Singleton 객체
private static final MyDataSingleton INSTANCE = new MyDataSingleton();
// 데이터 변수
private String data;
// 생성자는 private으로 선언하여 외부에서 객체 생성 방지
private MyDataSingleton() {}
// Singleton 객체 반환
public static MyDataSingleton getInstance() {
return INSTANCE;
}
// 데이터 설정 및 조회 메소드
public void setData(String data) {
this.data = data;
}
public String getData() {
return data;
}
}
Singleton 패턴은 전역 변수를 사용하는 것과 유사한 방식으로, 하나의 객체만 생성하고 이를 여러 곳에서 공유하여 사용합니다. 이 경우, 컨트롤러로부터 받아온 값을 Singleton 객체에 저장하고, 다른 클래스에서는 Singleton 객체를 이용하여 값을 사용할 수 있습니다.
3. 스태틱(static) 변수나 메소드를 이용하기
public class MyController {
public void handleRequest(String data) {
// 스태틱 변수에 데이터 저장
MyData.setData(data);
// 다른 클래스에서 스태틱 메소드를 이용하여 데이터 사용
MyService.processData();
}
}
public class MyService {
public static void processData() {
// 스태틱 변수에서 데이터 조회
String data = MyData.getData();
// 데이터 사용
System.out.println("Data received: " + data);
}
}
public class MyData {
// 스태틱 변수
private static String data;
// 데이터 설정 및 조회 메소드
public static void setData(String data) {
MyData.data = data;
}
public static String getData() {
return data;
}
}
스태틱 변수나 메소드를 이용하여 값을 저장하고, 다른 클래스에서는 스태틱 변수나 메소드를 이용하여 값을 사용할 수 있습니다. 이 경우에도 Singleton 패턴과 유사한 효과를 얻을 수 있습니다.
4. 데이터베이스나 파일에 저장하기
public class SomeClass {
private String someData;
public SomeClass(String data) {
this.someData = data;
}
public void doSomething() {
System.out.println("Doing something with " + someData);
}
}
@RestController
public class MyController {
@PostMapping("/someEndpoint")
public ResponseEntity<String> handleRequest(@RequestBody String data) {
SomeClass someClass = new SomeClass(data);
someClass.doSomething();
return ResponseEntity.ok("Success");
}
}
컨트롤러로부터 받아온 값을 데이터베이스나 파일에 저장하고, 다른 클래스에서는 이를 조회하여 값을 사용할 수 있습니다. 이 경우, 데이터베이스나 파일에 저장하는 방식은 선택된 기술에 따라 다르며, 이를 위해 필요한 라이브러리나 프레임워크를 추가로 사용해야 할 수도 있습니다.
반응형
'Java Spring' 카테고리의 다른 글
[Spring/IntelliJ] 어노테이션을 import 하려는데 갑자기 사라졌어요 (0) | 2023.08.08 |
---|---|
[Java Spring] 스프링 로드맵 (0) | 2023.01.30 |
Comments