React&Spring&JPA

YOBY·2023년 10월 24일
0

프론트엔드 (리액트)

// FrontendComponent.jsx

import React, { useState, useEffect } from 'react';

function FrontendComponent() {
  const [data, setData] = useState([]);

  useEffect(() => {
    // 서비스로직과 통신하여 데이터 가져오기
    fetch('/api/getData')
      .then(response => response.json())
      .then(data => setData(data))
      .catch(error => console.error('Error:', error));
  }, []);

  return (
    <div>
      <h1>프론트엔드 컴포넌트</h1>
      <ul>
        {data.map(item => <li key={item.id}>{item.name}</li>)}
      </ul>
    </div>
  );
}

export default FrontendComponent;

백엔드 (자바 - Spring Boot 기준)

// BackendController.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
public class BackendController {

    @Autowired
    private DataService dataService;

    @GetMapping("/api/getData")
    public List<Data> getData() {
        return dataService.getAllData();
    }
}
java
Copy code
// DataService.java

import java.util.List;

public interface DataService {
    List<Data> getAllData();
}

// DataServiceImpl.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class DataServiceImpl implements DataService {

    @Autowired
    private DataRepository dataRepository;

    @Override
    public List<Data> getAllData() {
        return dataRepository.findAll();
    }
}

// Data.java (JPA Entity)

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Data {
    @Id
    private Long id;
    private String name;

    // Getter와 Setter 메서드 생략
}

// DataRepository.java (Spring Data JPA Repository)

import org.springframework.data.jpa.repository.JpaRepository;

public interface DataRepository extends JpaRepository<Data, Long> {
}

데이터베이스 설정 (예시로 MySQL 사용)
데이터베이스를 설정하고 연결하기 위해 Spring Boot의 application.properties 파일을 설정해야 합니다.

# application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update

이 예시에서는 React로 작성된 프론트엔드 컴포넌트가 서비스로직으로부터 데이터를 가져오기 위해 API 엔드포인트에 요청을 보내고, 백엔드는 해당 요청을 받아 서비스로직을 실행하여 데이터베이스에서 데이터를 가져옵니다. 그리고 그 결과를 JSON 형식으로 응답합니다.

0개의 댓글