(web) 스프링2020. 11. 12. 15:37
728x90

※ spring - gradle 프로젝트

 

 

* 우선 파이어베이스에서 console을 하나 만듭니다.

 

* gradle 프로젝트이므로

build.gradle에 파이어베이스의 dependencies를 추가해 줍니다.  (버전확인 <-링크 클릭해서 확인하세요)

implementation 'com.google.firebase:firebase-admin:6.8.1'

 

build.gradle에 firebase dependency 추가한 모습

 

 

* Firebase Admin SDK 추가

콘솔에서 원하는 프로젝트 - 설정 -프로젝트 설정 - 서비스 계정 - 자바 - 새 비공개 키 생성

 

키 생성 클릭하면 json 파일 하나가 다운로드 됩니다.

다운받은 .json파일

 

다운받은 파일을 드래그&드랍으로 프로젝트의 resources 디렉토리 안에 넣어줍니다.

 

* 스프링 프로젝트의 application.properties에 다음의 문장을 입력합니다

firebase-realtime-database.database-url=파이어베이스 주소

 

파이어베이스 주소는 빨간색 밑줄로 표시되어 있는 것 입니다.

그리고 좌측의 버튼으로 복사가 가능합니다.

파이어베이스 주소

 

붙여넣은 모습

 

 


spring과 파이어베이스 realtime 데이터베이스를 연결하려고 했습니다.

결국 성공하지 못해서 코드를 남깁니다..ㅠ

 

 

Service/FirebaseInitialize.java

package DSC4.cafein.service;

import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.io.FileInputStream;

@Service
public class FirebaseInitialize {

    @PostConstruct //has to be Run during the Start of
    public void initialize() {
        try {
            FileInputStream serviceAccount =
                    new FileInputStream("./src/main/resources/serviceAccountKey.json");

            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .setDatabaseUrl("https://cafein-d8792.firebaseio.com")
                    .build();

            FirebaseApp.initializeApp(options);
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

 

 

Service/FirebaseService.java

package DSC4.cafein.service;

import DSC4.cafein.domain.Member;
import com.google.firebase.database.*;
import org.springframework.stereotype.Service;


@Service
public class FirebaseService {
    private FirebaseDatabase database;
    private DatabaseReference databaseReference;

    public String getUserDetails(Member member) {
        database = FirebaseDatabase.getInstance();
        databaseReference = database.getReference("member").child("spring1");


        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
            //    Iterable<DataSnapshot> values = dataSnapshot.getValue(Member.class);
                Member member;
                member. = dataSnapshot.child("name").getValue();
             //   member = values.toString(Member.class);
              //  return member;
            }

            @Override
            public void onCancelled(DatabaseError error) {

            }
        });
//        ApiFuture<DataSnapshot> future = databaseReference.get();
//
//        DataSnapshot snapshot = future.get();
//        Member member = null;
//
//        if(snapshot.exists()){
//            member = snapshot.toObject(Member.class);
//            return member;
//        }
//        else{
//            return null;
//        }


//        mFirebaseDataBaseReference = FirebaseDatabase.getInstance().getReference();
//        mFirebaseDataBaseReference.child("user").child("ID").setValue("test",);

    }
}

 

 

반응형
Posted by mminky
(web) 스프링2020. 11. 9. 15:32
728x90

java -jar 명령어를 입력했는데 다음의 오류가 나타났습니다.

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

 

읽어보니 8080포트를 이미 사용중이라고 합니다.

 

까먹고 있었는데 다른 jar 파일을 실행하느라 8080포트를 이용하고 있었습니다.

 

현재 실행중이던 jar파일을 Ctrl + C 를 입력해 강제 종료 시켰습니다.

 

그리고 원래 하려던 파일을 java -jar 명령어를 통해 다시 실행하니 아주 잘 실행이 되네용 (●ˇ∀ˇ●)

 

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 ◡̈

반응형
Posted by mminky
(web) 스프링2020. 11. 9. 15:20
728x90

* 프로젝트명 : hello-demo-result

* 운영체제 : 윈도우

 

우선 해당 프로젝트의 디렉토리(폴더)로 이동을 합니다.(cd 명령어 이용)

그리고 dir 명령어를 통해 gradlew 파일이 있는지 확인합니다.

dir

 

dir 명령어

 

다음의 명령어로 build를 해줍니다.

gradlew build

 

gradlew build

 

build가 성공적으로 끝나면 build 디렉토리가 생성됩니다.

다음의 명령어로 libs폴더로 이동합니다.

cd build/libs

 

cd build/libs

 

libs폴더에서 dir 명령어를 통해 ~~ -SNAPSHOT.jar 파일이 있는지 확인합니다.

dir

 

dir

 

 ~~ -SNAPSHOT.jar 파일을 확인했으면 다음의 명령어를 입력해서

jar파일을 실행합니다.

java -jar 파일명-SNAPSHOT.jar

 

이 때  ~~ -SNAPSHOT.jar 파일명이 너무 길기 때문에

몇 자만 입력하고 Tab을 누르면 자동으로 이름이 완성됩니다. (혹은 복붙 추천)

 

예를 들어 hello-demo-result-0.0.1-SNAPSHOT.jar 의 경우 hello만 입력하고 Tab 키를 누르면 자동으로 입력이 됩니다.

java -jar

jar파일 실행이 성공하면

Spring이라는 글자가 나타납니다.

그리고 Tomcat port : 8080이라고 나타납니다. (위 사진 참고)

 

 

그러면 인터넷 창을 켜서 localhost:8080에 접속을 하면

자신이 만들었던 웹 페이지가 나타나는 것을 확인 할 수 있습니다!

localhost:8080

 

 

 

 

+) 재시작 할 때 (↓)

더보기

Terminal에서 Ctrl+C를 눌러 실행중이던 spring을 종료한다.

 

그 후 Run에서 초록색 재생버튼을 클릭하면 다시 실행된다 :)

 

 

+)참고사항

 

* 서버 배포시에 jar 파일만 서버에 넣어주면 됨
* java -jar 실행시키면 서버에서도 스프링이 동작함
* tomcat으로 할 필요 x

 

 

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 ◡̈

반응형
Posted by mminky
(web) 스프링2020. 11. 9. 15:19
728x90

오늘부터 스프링을 공부해보려고 합니다!

아래의 무료 강의로 스프링에 대한 전체적인 이해를 하려고 합니다!

 

inf.run/eJno

 

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 입문 프레임워크 및 라이브러리 웹 개발 Back-End Java Spring MVC Spring Boot 온라인 강의 백엔��

www.inflearn.com

 

* 사전 준비

  - Java11설치 (무관하나 최대한 11로 하는게 좋음) (저는 이 링크를 참조 했습니다)

  - IntelliJ 혹은 Eclipse 설치 (요즘은 IDE로 InteliJ 이용함) (이 링크를 따라했습니다)

 

  [java 설치 확인]

  cmd창에 다음을 입력한 후 확인합니다.

java -version
javac -version

 

---------------------------------------------------------------------------------------------------

※ 본 글은 스프링 입문-코드로 배우는 스프링부트, 웹MVC, DB접근기술 강의를 참고하여 작성하였습니다.

   문제가 있을 시 삭제하겠습니다.

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 ◡̈

반응형
Posted by mminky