@Getter
public static class User
{
int id;
String username;
String passwd;
String email;
public User(int id, String username, String passwd, String email)
{
this.id = id;
this.username = username;
this.passwd = passwd;
this.email = email;
}
}
@RestController
public class HiReactController
{
// 리액트와 연결될 주소 매핑
@PostMapping("/api/users")
public User user()
{
System.out.println("::: HiReactController IN :::");
User user = new User(1, "eleven", "1234", "jskim@repia.com");
return user;
}
}
\\
===== React =====
> 부트와 통신하기 위해 proxy와 axios 라이브러리 설치
PS ~\react-app> npm install http-proxy-middleware --save
PS ~\react-app> npm install axios --save
\\
> 프록시 설정을 위해 src/setupProxy.js 파일 생성
const {createProxyMiddleware} = require("http-proxy-middleware");
module.exports = function(app){
app.use(
"/api"
, createProxyMiddleware({
target: "http://localhost:8006" // 부트프로젝트 주소
, changeOrigin: true
})
);
};
\\
> axios가 요청을 보내고, 리턴값을 화면에 띄우기 위해 src/App.js 파일 수정
import logo from './logo.svg';
import React, {useState, useEffect} from "react";
import './App.css';
import Axios from "axios";
function App()
{
const [user, setUser] = useState("");
useEffect(() => {
Axios.post("/api/users").then((response) => {
if(response.data){
console.log("console check! ===> ", response.data);
setUser(response.data);
}
else
{
alert("failed to");
}
});
}, []);
return (
Hello, React!
No.{user.id}
name is {user.username}
password? {user.passwd}
email... {user.email}
Learn React
);
}
export default App;
\\
> 스프링부트 서버 실행 후, 리액트 실행하여 화면 확인
PS ~\react-app> npm run start
===== Ref =====
[[https://transferhwang.tistory.com/411|스프링 부트 + 리액트 환경 구축 및 연동]]
{{tag> eleven react springboot STS4 vscode}}