Programming๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/AxBoot

*์ค‘์š” ๋””๋ฒ„๊น…, ๋‹จ์œ„ํ…Œ์ŠคํŠธ

Dodal 2021. 4. 22. 09:47

service ๋‹จ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜๋Š”์ง€ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ๋„ฃ์–ด์„œ ํ™•์ธํ•˜๊ธฐ.


๋‹จ์œ„ํ…Œ์ŠคํŠธ์˜ ์‹œ์ž‘

*ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ์Šต๊ด€์€ ์ •๋ง ์ค‘์š”ํ•˜๋‹ˆ๊นŒ ํ•ญ์ƒ ๋ชธ์— ์ต์ˆ™ํ•˜๊ฒŒ ๋งŒ๋“ค์ž!

 

๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์„ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด์•ผํ•จ.

 

1. ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ [src - test - java - edu -axboot - domain - {company - [CompanyServiceTest.java]}

 

2. class ์„ค๊ณ„

*Junit assert ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐ

 

3. Test ๊ตฌ์„ฑ

Test ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ run์œผ๋กœ ์‹คํ–‰

๋””๋ฒ„๊ทธ ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ๋””๋ฒ„๊ทธ run์œผ๋กœ ์‹คํ–‰

 

package edu.axboot.domain.company;

import com.chequer.axboot.core.parameter.RequestParams;
import edu.axboot.AXBootApplication;
import lombok.extern.java.Log;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

import static org.junit.Assert.assertTrue;
//ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์œ„์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ์ค€๋‹ค.

@Log
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AXBootApplication.class)

public class CompanyServiceTest {
    @Autowired
    private CompanyService companyService;

    @Test
    //companyservie.java์—์„œ getByQueryDsl์˜ ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒฝ์šฐ.
    //Test์™€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ช…์„ ๋ช…์‹œํ•ด์คŒ
    public void testGetQueryDls() {
        // ํ…Œ์ŠคํŠธ๋‹จ๊ณ„์—์„œ๋„ "๋””๋ฒ„๊น…" ๊ฐ€๋Šฅ

        // ***given : ์‚ฌ์ „์ค€๋น„, ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ๋ณ€์ˆ˜,์ •์˜
        RequestParams<Company> requestParams = new RequestParams<Company>(); //ํ•ด๋‹น ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’
        requestParams.put("company", "ํ† ์Šค"); //ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ๋„ฃ์–ด์ฃผ๊ธฐ
        requestParams.put("ceo", "");
        requestParams.put("bizno", "");
        // ------------๊ฐ’์„ ๋˜์ง------

        // ***when : ์‹ค์ œ Action
        List<Company> result = this.companyService.getByQueryDsl(requestParams);
        //------ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’ ๋„˜๊ฒจ์ฃผ๊ธฐ


        // ***then : ๊ฒฐ๊ณผ์— ์ฐธ๊ฐ’์˜ ์„ฑ๊ณต์—ฌ๋ถ€. ( true/false )
        // asserTrue : ๊ฒฐ๊ณผ๊ฐ’ ์—ฌ๋ถ€์˜ ์ฐธ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ.

       // assertTrue(result.size() > 0);

        // ์ฐธ์˜ ์กฐ๊ฑด์„ ์ •ํ™•ํ•˜๊ฒŒ 1๊ฑด์ธ์ง€ ๋ช…์‹œ
        assertTrue(result.size() == 1);
    }
}

1)

CompanyService.java

2)

CompanyServiceTest.java

3)

CompanyService.java


๋ฆฌํŒฉํ† ๋ง


Test๋กœ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ CRUD 

Insert

  @Test
    public void testSaveQueryDls_create() {
        /* given
         1.Company๊ฐ์ฒด ๊ฐ’ ํ˜•ํƒœ์˜ Array๋ฐฐ์—ด์˜ ๊ฐ์ฒด๋ฅผ ์„ ์–ธ,*/
        List<Company> requests = new ArrayList<Company>(); // ๊ทธ๋ฆ‡

        // 2.๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ฐ’์„ addํ•ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์žฌ๋ฃŒ(๋‚ด์šฉ)๋“ค..
        Company company = new Company();
        company.setCompanyNm("๋‹จํ…ŒํšŒ์‚ฌ");
        company.setCeo("๋‹จํ…Œ๋Œ€ํ‘œ");
        company.setBizno("1234");
        company.set__created__(true); //์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด true๊ฐ’์„ ๋„ฃ์–ด์คŒ
                //company๊ฐ์ฒด๊ฐ€ SimpleJpaModel๋ฅผ ์ƒ์†๋ฐ›์•„์„œ
                //SimpleJpaModel์˜ AxBootCrudModel ์— CRUD๊ธฐ๋Šฅ์ด ์žˆ์Œ.
        requests.add(company); // ๋‚ด์šฉ์„ ๋‹ด์•„ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋ณด๋ƒ„
        /*when
        * ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›๋Š” result*/
        int result = this.companyService.saveByQueryDsl(requests);

        // then
        // ๊ฒฐ๊ณผ๊ฐ’ 1์ด๋‚˜์˜ค๋ฉด ํ…Œ์ŠคํŠธ ์„ฑ๊ณต
        assertTrue(result == 1);
    }

 

 

 

์ •๋ณด๋ฅผ ๋ณต์ˆ˜๋กœ ๋„ฃ์–ด์ค„ ๋•Œ ์ธ์Šคํ„ด์Šค๋Š” ๋ณ„๋„๋กœ ์ƒ์„ฑํ•ด์ค˜์•ผ ๋ฐ์ดํ„ฐ ์ •๋ณด ๊ฒน์นจ ํ˜„์ƒ์ด ์•ˆ๋จ

๋‘ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€์‹œ


Update


Delete

 


-๋ชฉ์—…/๋‹จ์œ„ํ…Œ์ŠคํŠธ ํ†ตํ•ฉํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ๋„ฃ์–ด์„œ ํ™•์ธํ•˜๊ธฐ.

 

๋‹จ์œ„ํ…Œ์ŠคํŠธ์˜ ์‹œ์ž‘

*ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ์Šต๊ด€์€ ์ •๋ง ์ค‘์š”ํ•˜๋‹ˆ๊นŒ ํ•ญ์ƒ ๋ชธ์— ์ต์ˆ™ํ•˜๊ฒŒ ๋งŒ๋“ค์ž!

 

 

 

๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์„ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด์•ผํ•จ.

 

 

 

1. ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ [src - test - java - edu -axboot - domain - {company - [CompanyServiceTest.java]}

 

 

๏ฟผ

2. class ์„ค๊ณ„

๏ฟผ

*Junit assert ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐ

 

 

 

3. Test ๊ตฌ์„ฑ

Test ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ run์œผ๋กœ ์‹คํ–‰

 

๋””๋ฒ„๊ทธ ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ๋””๋ฒ„๊ทธ run์œผ๋กœ ์‹คํ–‰

 

 

 

package edu.axboot.domain.company;

 

import com.chequer.axboot.core.parameter.RequestParams;

import edu.axboot.AXBootApplication;

import lombok.extern.java.Log;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

 

import java.util.List;

 

import static org.junit.Assert.assertTrue;

//ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์œ„์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ์ค€๋‹ค.

 

@Log

@RunWith(SpringRunner.class)

@SpringBootTest(classes = AXBootApplication.class)

 

public class CompanyServiceTest {

    @Autowired

    private CompanyService companyService;

 

    @Test

    //companyservie.java์—์„œ getByQueryDsl์˜ ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒฝ์šฐ.

    //Test์™€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ช…์„ ๋ช…์‹œํ•ด์คŒ

    public void testGetQueryDls() {

        // ํ…Œ์ŠคํŠธ๋‹จ๊ณ„์—์„œ๋„ "๋””๋ฒ„๊น…" ๊ฐ€๋Šฅ

 

        // ***given : ์‚ฌ์ „์ค€๋น„, ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ๋ณ€์ˆ˜,์ •์˜

        RequestParams<Company> requestParams = new RequestParams<Company>(); //ํ•ด๋‹น ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’

        requestParams.put("company", "ํ† ์Šค"); //ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ๋„ฃ์–ด์ฃผ๊ธฐ

        requestParams.put("ceo", "");

        requestParams.put("bizno", "");

        // ------------๊ฐ’์„ ๋˜์ง------

 

        // ***when : ์‹ค์ œ Action

        List<Company> result = this.companyService.getByQueryDsl(requestParams);

        //------ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’ ๋„˜๊ฒจ์ฃผ๊ธฐ

 

 

        // ***then : ๊ฒฐ๊ณผ์— ์ฐธ๊ฐ’์˜ ์„ฑ๊ณต์—ฌ๋ถ€. ( true/false )

        // asserTrue : ๊ฒฐ๊ณผ๊ฐ’ ์—ฌ๋ถ€์˜ ์ฐธ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ.

 

       // assertTrue(result.size() > 0);

 

        // ์ฐธ์˜ ์กฐ๊ฑด์„ ์ •ํ™•ํ•˜๊ฒŒ 1๊ฑด์ธ์ง€ ๋ช…์‹œ

        assertTrue(result.size() == 1);

    }

}

1)

 

๏ฟผ

CompanyService.java

2)

 

๏ฟผ

CompanyServiceTest.java

3)

 

๏ฟผ

CompanyService.java

๋ฆฌํŒฉํ† ๋ง

๏ฟผ

Test๋กœ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ CRUD 

 

Insert

  @Test

    public void testSaveQueryDls_create() {

        /* given

         1.Company๊ฐ์ฒด ๊ฐ’ ํ˜•ํƒœ์˜ Array๋ฐฐ์—ด์˜ ๊ฐ์ฒด๋ฅผ ์„ ์–ธ,*/

        List<Company> requests = new ArrayList<Company>(); // ๊ทธ๋ฆ‡

 

        // 2.๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ฐ’์„ addํ•ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์žฌ๋ฃŒ(๋‚ด์šฉ)๋“ค..

        Company company = new Company();

        company.setCompanyNm("๋‹จํ…ŒํšŒ์‚ฌ");

        company.setCeo("๋‹จํ…Œ๋Œ€ํ‘œ");

        company.setBizno("1234");

        company.set__created__(true); //์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด true๊ฐ’์„ ๋„ฃ์–ด์คŒ

                //company๊ฐ์ฒด๊ฐ€ SimpleJpaModel๋ฅผ ์ƒ์†๋ฐ›์•„์„œ

                //SimpleJpaModel์˜ AxBootCrudModel ์— CRUD๊ธฐ๋Šฅ์ด ์žˆ์Œ.

        requests.add(company); // ๋‚ด์šฉ์„ ๋‹ด์•„ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋ณด๋ƒ„

        /*when

        * ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›๋Š” result*/

        int result = this.companyService.saveByQueryDsl(requests);

 

        // then

        // ๊ฒฐ๊ณผ๊ฐ’ 1์ด๋‚˜์˜ค๋ฉด ํ…Œ์ŠคํŠธ ์„ฑ๊ณต

        assertTrue(result == 1);

    }

๏ฟผ

 

 

 

 

 

 

์ •๋ณด๋ฅผ ๋ณต์ˆ˜๋กœ ๋„ฃ์–ด์ค„ ๋•Œ ์ธ์Šคํ„ด์Šค๋Š” ๋ณ„๋„๋กœ ์ƒ์„ฑํ•ด์ค˜์•ผ ๋ฐ์ดํ„ฐ ์ •๋ณด ๊ฒน์นจ ํ˜„์ƒ์ด ์•ˆ๋จ

 

๏ฟผ

๋‘ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€์‹œ

Update

๏ฟผ

Delete

๏ฟผ

 

 

-๋ชฉ์—…/๋‹จ์œ„ํ…Œ์ŠคํŠธ ํ†ตํ•ฉ: ํ—ˆ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋†“๊ณ  ์ง์ ‘ db์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๊ฒƒ. ์ƒ์„ฑ-์ˆ˜์ •-์‚ญ์ œ๊นŒ์ง€ ์™„๋ฃŒํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๋งˆ์นจ

-ํ…Œ์ŠคํŠธ๋Š” ์ˆ˜ํ–‰ํ•˜๋˜, ํ”์ ์„ ๋‚จ๊ธฐ์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ์ผ๊ด„์ ์œผ๋กœ CRUD๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์„ฑ๊ณต์—ฌ๋ถ€๋กœ ์—๋Ÿฌ ํŒ๋‹จ์„ํ•จ.

 

package edu.axboot.domain.company;

import com.chequer.axboot.core.parameter.RequestParams;
import edu.axboot.AXBootApplication;
import lombok.extern.java.Log;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.assertTrue;
//ํ…Œ์ŠคํŠธํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์œ„์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ์ค€๋‹ค.

@Log
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AXBootApplication.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING) //์ด๋ฆ„์ˆœ์œผ๋กœ ์ •๋ ฌ

public class CompanyServiceTest {
    @Autowired
    private CompanyService companyService;

    public static long testId = 0; // ์ „์—ญ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•ด์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณต์œ 
    //๊ทธ๋ƒฅ longํƒ€์ž…์ด๋ฉด ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ๊ฐ’์ด 0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋˜๋ฏ€๋กœ static์œผ๋กœ ์ •์˜ํ•จ.
    @Test
    //companyservie.java์—์„œ getByQueryDsl์˜ ํ•จ์ˆ˜๋ฅผ ํ…Œ์ŠคํŠธํ•  ๊ฒฝ์šฐ.
    //Test์™€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ช…์„ ๋ช…์‹œํ•ด์คŒ
    public void testGetQueryDls() {
        // ํ…Œ์ŠคํŠธ๋‹จ๊ณ„์—์„œ๋„ "๋””๋ฒ„๊น…" ๊ฐ€๋Šฅ

        // ***given : ์‚ฌ์ „์ค€๋น„, ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ๋ณ€์ˆ˜,์ •์˜
        RequestParams<Company> requestParams = new RequestParams<Company>(); //ํ•ด๋‹น ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’
        requestParams.put("company", "ํ† ์Šค"); //ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ๋„ฃ์–ด์ฃผ๊ธฐ
        requestParams.put("ceo", "");
        requestParams.put("bizno", "");
        // ------------๊ฐ’์„ ๋˜์ง------

        // ***when : ์‹ค์ œ Action
        List<Company> result = this.companyService.getByQueryDsl(requestParams);
        //------ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’ ๋„˜๊ฒจ์ฃผ๊ธฐ

        // ***then : ๊ฒฐ๊ณผ์— ์ฐธ๊ฐ’์˜ ์„ฑ๊ณต์—ฌ๋ถ€. ( true/false )
        // asserTrue : ๊ฒฐ๊ณผ๊ฐ’ ์—ฌ๋ถ€์˜ ์ฐธ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ.

       // assertTrue(result.size() > 0);

        // ์ฐธ์˜ ์กฐ๊ฑด์„ ์ •ํ™•ํ•˜๊ฒŒ 1๊ฑด์ธ์ง€ ๋ช…์‹œ
        assertTrue(result.size() == 1);
    }


    @Test
    public void testGetQueryDlsByString() { //๋ ˆ์ด๋ธ”๋กœ ์กฐํšŒ
        // ***given : ์‚ฌ์ „์ค€๋น„, ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ๋ณ€์ˆ˜,์ •์˜
        String companyNm = "ํ† ์Šค";
        String ceo = "";
        String bizno = "";

        // ***when : ์‹ค์ œ Action
        List<Company> result = this.companyService.getByQueryDsl(companyNm, ceo, bizno);
                                                    // ์ƒˆ๋กœ์šด ๋ฉ”์„œ๋“œ๋ช…, ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ช…์œผ๋กœ๋„ ๊ฐ€๋Šฅ
        // ***then : ๊ฒฐ๊ณผ์— ์ฐธ๊ฐ’์˜ ์„ฑ๊ณต์—ฌ๋ถ€. ( true/false )
        assertTrue(result.size() == 1);
    }


    // ํ…Œ์ด๋ธ” ์ƒ์„ฑ
    @Test
    public void test1_SaveQueryDls_create() {
        /* given
         1.Company๊ฐ์ฒด ๊ฐ’ ํ˜•ํƒœ์˜ Array๋ฐฐ์—ด์˜ ๊ฐ์ฒด๋ฅผ ์„ ์–ธ,*/
        List<Company> requests = new ArrayList<Company>(); // ๊ทธ๋ฆ‡

        // 2.๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ฐ’์„ addํ•ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์žฌ๋ฃŒ(๋‚ด์šฉ)๋“ค..
        Company company = new Company();
        company.setCompanyNm("๋‹จํ…ŒํšŒ์‚ฌ");
        company.setCeo("๋‹จํ…Œ๋Œ€ํ‘œ");
        company.setBizno("1234");
        company.set__created__(true); //์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด true๊ฐ’์„ ๋„ฃ์–ด์คŒ
                //company๊ฐ์ฒด๊ฐ€ SimpleJpaModel๋ฅผ ์ƒ์†๋ฐ›์•„์„œ
                //SimpleJpaModel์˜ AxBootCrudModel ์— CRUD๊ธฐ๋Šฅ์ด ์žˆ์Œ.
        requests.add(company); // ๋‚ด์šฉ์„ ๋‹ด์•„ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ๋ณด๋ƒ„


        /*
        when
        ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›๋Š” result
        */

        testId = this.companyService.saveByQueryDsl(requests);

        // then
        // ๊ฒฐ๊ณผ๊ฐ’ 1์ด๋‚˜์˜ค๋ฉด ํ…Œ์ŠคํŠธ ์„ฑ๊ณต
        assertTrue(testId > 0);
    }


    // modified
    @Test
    public void test2_SaveQueryDls_update() {
        //given

        List<Company> requests = new ArrayList<Company>(); // ๊ทธ๋ฆ‡

        Company company = new Company();
        company.setId(testId); //๊ฐ•์ œ ์บ์ŠคํŒ… & ๋’ค์— L๋ถ™์ด๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Œ
        company.setCompanyNm("๋‹จํ…ŒํšŒ์‚ฌ2");
        company.setCeo("๋‹จํ…Œ๋Œ€ํ‘œ");
        company.setBizno("1234");
        company.set__modified__(true);
        requests.add(company);


        /*when
         * ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›๋Š” result*/
        long result = this.companyService.saveByQueryDsl(requests);

        // then
        // ๊ฒฐ๊ณผ๊ฐ’ 1์ด๋‚˜์˜ค๋ฉด ํ…Œ์ŠคํŠธ ์„ฑ๊ณต
        assertTrue(result == 1);
    }

    //Delete
    @Test
    public void test3_SaveQueryDls_delete() {
        //given

        List<Company> requests = new ArrayList<Company>();

        Company company = new Company();
        company.setId(testId);
        company.set__deleted__(true);
        requests.add(company);

        /*when
         * ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›๋Š” result*/
        long result = this.companyService.saveByQueryDsl(requests);

        // then
        // ๊ฒฐ๊ณผ๊ฐ’ 1์ด๋‚˜์˜ค๋ฉด ํ…Œ์ŠคํŠธ ์„ฑ๊ณต
        assertTrue(result == 1);
    }
}


@FixMethodOrder(MethodSorters.NAME_ASCENDING) //์ด๋ฆ„์ˆœ์œผ๋กœ ์ •๋ ฌ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€

SelectOne์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ํ…Œ์ŠคํŠธํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์™€ ์‹ค์ œ db์— ์ €์žฅ๋œ ์ •๋ณด๊ฐ€ ๊ฐ™์€์ง€ ํ™•์ธ

@Test
    public void test4_GetQueryDls_seletOne() { //๋ ˆ์ด๋ธ”๋กœ ํ•œ๊ฑด ์กฐํšŒ
        // ***given : ์‚ฌ์ „์ค€๋น„, ํ…Œ์ŠคํŠธํ•˜๊ธฐ์œ„ํ•œ ๋ณ€์ˆ˜,์ •์˜

        String companyNm = "๋‹จํ…ŒํšŒ์‚ฌ2";
        String ceo = "";
        String bizno = "";

        // ***when : ์‹ค์ œ Action
        Company result = this.companyService.getOneByQueryDsl(testId);


        // ***then : ๊ฒฐ๊ณผ์— ์ฐธ๊ฐ’์˜ ์„ฑ๊ณต์—ฌ๋ถ€. ( true/false )
        assertTrue(result.getCompanyNm().equals(companyNm));
    }

 

public Company getOneByQueryDsl(long id) {
        BooleanBuilder builder = new BooleanBuilder(); // BooleanBuilder : where๋’ค์— ์กฐ๊ฑด์„ ์ƒ์„ฑํ•ด์คŒ
        builder.and(qCompany.id.eq(id));

        Company company = select()
                .from(qCompany)
                .where(builder)
                .fetchOne();
        return company;
    }

 

 


๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์•…

src - ์‹ค์ œ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ 
์ปดํŒŒ์ผ ํ›„ ์ €์žฅ๋˜๋Š” ์ •๋ณด(ํด๋ž˜์Šค์ƒ์„ฑ๋“ฑ)  -target
webapp - ํ™”๋ฉด๋‹จ
java - ์ž๋ฐ”์ฝ”๋“œ

 

ํ™˜๊ฒฝํŒŒ์ผ resource ํด๋” - ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ๋“ค์ด ์žˆ์Œ

axboot-common-properties : ๊ณตํ†ต์ ์œผ๋กœ ์„ค์ •๋˜์•ผ๋˜๋Š” ์š”์†Œ๋“ค


axboot-local-production ํŒŒ์ผ:๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ์ด๋ค„์งˆ๋•Œ

axboot-production-properties: common-properties ์™€ ๋น„์Šทํ•œ ๊ตฌ์„ฑ

์šด์˜๊ณ„์— ๋Œ๋ฆฌ๋Š” ํ™˜๊ฒฝ /์šด์˜๊ณ„ํ™˜๊ฒฝ์ด ๋‹ค๋ฅผ๋•Œ ์ด๊ณณ์— ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ํ™œ์šฉ

 

์†์„ฑ์˜ axboot.dataSource.url์ด ์„œ๋กœ ๋‹ค๋ฆ„.

 

๋กœ์ปฌ/ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ๊ตฌ๋ถ„: src-main-java-ํ”„๋กœ์ ํŠธํด๋”(edu) ํด๋”์•ˆ์— AxbootApplication.java์—

[@PropertySource(value = {"classpath:axboot-common.properties", "classpath:axboot-${spring.profiles.active:local}.properties"})]์—์„œ ํ™•์ธ๊ฐ€๋Šฅ.

[local, production] 2๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ JDBCURL (/setup :URL)์„ DBํ™˜๊ฒฝ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

 

DBํ™˜๊ฒฝ์ด ๋ฐ”๋€Œ๋ฉด loca.properties์— ์„ค์ •์„ ์ ์šฉํ•˜๋ฉด๋จ (mysql, oracle๊ณ„์ • ๋“ฑ..)


๋‹ค๊ตญ์–ด ์ง€์›- ๋ฆฌ์†Œ์Šค์— ๋‹ค๋ฅธ ์–ธ์–ด์˜ properties๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋จ.


resource-template : ํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด๋‹จ ํ…œํ”Œ๋ฆฟ jsp์†Œ์Šค ๋ถˆ๋Ÿฌ์™€์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.


AXBootSecurityConfig.java

role๊ถŒํ•œ ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ์Œ.

spring seculity์—์„œ ์ž๋™์ ์œผ๋กœ ์„ค์ •์„ ์ง€์›ํ•ด์ค˜์„œ ์•Œ๋งž๊ฒŒ ์„ค์ •ํ•˜๋ฉด๋œ๋‹ค.

 

AxBootWebConfigureAdapter ํ™”๋ฉด๋‹จ


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜,์†Œ์Šค ๊ด€๋ฆฌ

๋ฐ˜์‘ํ˜•

'Programming๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป > AxBoot' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Banner / Logging / Excel download  (0) 2021.04.30
jsfiddle  (0) 2021.04.23
Mybatis์—ฐ๋™  (0) 2021.04.19
QueryDSL  (0) 2021.04.19
Mac ๋งฅ) Maven ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •  (0) 2021.04.19