본문 바로가기
Spring

SPRING BOOT을 이용한 쇼핑몰 만들기(Chapter1) - 스프링 환경셋팅 *with intellij,jsp,mybatis,tomcat,postgreSql

by 디찌s 2022. 5. 16.
728x90
반응형

 

시작하기에 앞서 이글은 많은 글들을 참조하고 공부하며 작성하는 글이며, 첫번째 버전은 현 SI 사업에서 많이 사용되는 jsp,mybatis,tomcat을 이용한 쇼핑몰 만들기이다.

추후에는 요즘핫한? 이미 나온지 오래됬지만 아직도 많이 사용하지않는 front는 react를 사용하고 backend는 spring을 이용한 쇼핑몰도 만들예정이다. 그럼 시작하겠다.

 

--준비물

postgreSql 설치

jdk1.8 설치

tomcat 8.5버전 설치




1.Intellij를 통해 스프링 프로젝트 생성

 

 

New Project를 클릭한다

 

 

Spring Initailr 를 선택후 위 그림과 같이 설정해준다. (jdk를 설치 하지 않았으면, 구글링하고 jdk1.8를 설치한후 다시돌아온다.)

 

우린 JSP를 이용해서 먼저 만들어볼것이기 때문에 war패키지로 생성한다.

 

 

위와같이 Spring boot devtools,Spring Web , Spring security ,PostgreSql Driver ,Mybatis Framework를 설치해준다.

 

 

2.JSP 설정을 통한 INDEX 화면 출력

 

아래의 xml 코드를 pom.xml 에 넣어준다.

     <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

 

 

위 dependency는 jsp에서 사용하는 문법인 jstl 를 사용하고, tomcat서버를 구동하기 위해 사용하는 종속 jar다.

 

 

위와 같이 webapp - WEB-INF - index 폴더를 만든후 jsp 파일을 만들어주자.

 

 

 

application.properties에 아래와 같은 코드를 넣어준다. application.properties는 spring boot가 실행되면 자동으로 로딩하게 되는 규약들이다. 내용을 살펴 보자면 '/WEB-INF/' 를 prefix로 놓고 .jsp로 끝나는 파일들을 맵핑한다는것이고, 그 아래 블록은 설치한 PostgresDB에 접근하는 db 정보들이다.

 

 

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=ROOT
spring.datasource.platform=postgres

 

3.TOMCAT을 부팅한후 index.jsp 출력

 

 

Edit configurations를 클릭한후에 (+) 를 클릭한후 tomcat local를 클릭해준다.

 

 

 

아래와 같은 화면이 나오면 configure를 클릭후 설치한 tomcat 경로를 맞춰준다. 필자는 tomcat 8.5를 설치하였다.

 

 

 

 

 

 

 

그다음 context path를 root (/) 로 바꿔준다. 여기를 바꿔주지않으면 localhost:8080/shop-spring-jsp/경로 이런식으로 접속해야 url이 정상적으로 먹힌다.

 

 

 

 

SPRING BOOT는 기본적으로 web서버가 포함되어 jar형태로 실행한다. 하지만 이런식으로 실행하면 jsp를 못읽어서 출력이 안된다 그래서 war형태로 배포해주는데 이때 필요한게 아래와 같은 코드이며, 이 코드는 was에서 war를 배포하도록 도와주는 코드이다.

 

 

 

@SpringBootApplication
public class ShopSpringJspApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(ShopSpringJspApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(ShopSpringJspApplication.class);
    }

}

ShopSpringJspApplication.java

 

4.Controller를 생성한후 jsp 출력

 

 

 

package index - controller 폴더를 생성후에 IndexController.java를 생성하자 그후에 아래의 코드를 넣어주자 여기서 @controller 어노테이션은 @component에 자식 어노테이션이며, IndexContoller.java를 특수 bean으로 만들어주는 아주멋진 어노테이션이다. 아마 이렇게 말하면 무슨말인줄 모를거다.. 시간이 지나면 알게된다. 일단 잘모르면 그냥 코드를 따라치는게 제일 좋다!

 

 

 

    @Controller
public class IndexController {
    @RequestMapping(value ="/")
    public String Index(){
        return "index/index";
    }
}    

 

이제 위에 재생 표시 나 벌레표시를 눌러서 실행해보자 ! 잉? 그런데 이상하다 막상 서버가 켜지니 아래와같이 자동으로 url이 /login 으로 가진다. 놀라지마라.. 이게 바로 프레임워크에 위력이다. 맨처음 설치한 spring-security 패키지를 기억하는가? spring-security는 자동적으로 login page를 생성해준다. 아주 좋은 패키지이다. 하지만 현재 우리는 jsp가 잘 동작하는지 확인해야한다. 일단 spring-security기능을 꺼보자

 

 

 

 

spring-security를 끄기위해 java 파일을 하나 작성하자

 

 

 

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/**").permitAll();
    }
}


 

위코드를 간략히 설명하자면 현재 http로 접근하는 모든 url를 허용한다는 이야기이다. 여기서 @Configration은 가시적으로 설정파일이라는 의미이며 bean으로 만들어준다.

 

 

설정이 끝났으면 이제 서버를 다시실행하고 localhost:8080으로 접근해보자

 

자 드디어... 우리가 원하는 Index.jsp가 출력되었다.. 기나긴 시간이였다.. 아마도 글로 읽으면 아주 짧지만 직접 스크린샷을 찍고 글을 쓰니.. 너무 오래걸린거같다.. 다음 chapter에는 mybatis 연동후 회원가입을 만들것이다.

 

아래에 github 링크를 이용하여 코드를 보길 바란다

https://github.com/Dongwankim1/shop-spring-jsp

 

728x90
반응형

댓글