Spring Boot 환경설정_ 2

유성용·2022년 5월 1일
0

Spring Boot

목록 보기
2/2

Spring Boot 2번째 환경설정!!!

환경설정_1 에서 Spring Boot Project를 생성하는 단계까지 진행을 해보았다.
Spring Boot Project를 만든 이유는 웹프로그래밍을 위해서이기 때문에 웹브라우저에
주소를 입력해서 간단한 hello~ 라는 글자를 보여줄수 있도록 설정해보자!
먼저 프로젝트 생성을 마치면

지정한 프로젝트 폴더와 하위에 다양한 폴더와 파일들이 기본적으로 생기는것을 볼수있다!

먼저 src/main/java의 하위에 기본으로 생성된 패키지가 있는데
패키지 안을 살펴보면 두개의 .java 파일이 있다.
프로젝트명 + Application.java 파일과 Servletinitializer.java 파일이 있는데
먼저 프로젝트명 + Application.java 파일을 열어본다

package dev.mvc.exam_pro;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages = {"dev.mvc"})
public class ExamProApplication {

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

}

생성된 클래스 위에 @SpringBootApplication 이라고 하는 어노테이션이 붙어있다.
추가로 @ComponentScan(basePackages = {"패키지명"}) 을 붙여준다.
다른 어노테이션들이 붙은 class들을 찾아서 Bean을 자동 생성 해주는 모양이다!

이제 같은 패키지안에 2개의 java class를 생성한다.
DatabaseConfig.java와 Controller.java 파일인데 먼저 DatabaseConfig.java를 보면

package dev.mvc.exam_pro;

import javax.sql.DataSource;


import org.mybatis.spring.annotation.MapperScan;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
@PropertySource("classpath:/application.properties") 
@MapperScan(basePackages= {"dev.mvc.exam_pro"})
public class DatabaseConfig {
    
    @Autowired
    private ApplicationContext applicationContext;
    
    @Bean
    @ConfigurationProperties(prefix="spring.datasource.hikari")  
    public HikariConfig hikariConfig() {
        return new HikariConfig();
    }
    
    @Bean
    public DataSource dataSource() throws Exception{
        DataSource dataSource = new HikariDataSource(hikariConfig());
        System.out.println(dataSource.toString());  
        return dataSource;
    }
    
    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/*.xml"));
        
        return sqlSessionFactoryBean.getObject();
    }
    
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory){
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

요렇게 긴 문장의 코드들을 작성하게 되는데 이 코드는 구글링을 하다보면 많이 보이니 슥 가져와본다 요기서 중요한부분은 2줄인데 22번 라인의 패키지주소 연결과
45번라인의 mapper 폴더 이름 및 xml 파일을 인식할수 있게 해주는부분을 본인 프로젝트에 맞춰서 잘 작성해줘야한다.

다시 같은 패키지안에 Controller.java 파일을 만들어준다

package dev.mvc.exam_pro;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ExamCont {
    
    public ExamCont() {
        System.out.println("Controller 실행됨");
    }
    
    @RequestMapping(value= "/", method = RequestMethod.GET)
    public ModelAndView  welcome() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("exam");
        return mv;
    }
}

내용은 제법 간결하다 ComponentScan이 찾을수 있게 @Controller 어노테이션을 잡아주고
컨트롤러가 실행되면 자동호출되게 생성자로 ExamCont(){} 메소드도 만들어준다.

그리고 ModelAndView 객체를 리턴하는 welcome 메소드를 만들어주고 바로위에 @RequestMapping 어노테이션을 Mapping해준다
별 내용없이 hello~ 만 출력할 것이기때문에 객체에 찾아갈 jsp파일 이름만 지정해주고 마무리해준다.
이제 패키지에 들어갈 기본적인 .java 파일들은 다 들어갔다.

이제 src/main/resources 폴더의 하위에 있는 파일인
application.properties 파일을 설정하게된다.

server.port = 9002

# JSP View path
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

# DEVTOOLS (DevToolsProperties)
spring.devtools.livereload.enabled=true

# Oracle
spring.datasource.hikari.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.hikari.jdbc-url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.hikari.username=yong_2
spring.datasource.hikari.password=1234

# All DBMS
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=5000

여기도 사실 외워서 작성할수 있으면 좋겠지만 본인은 구글링으로 찾아서 넣거나 본인이 가지고있는 소스를 가져와서 재사용하는 편이다
새로 사용할 포트번호를 설정할 수 있고
jsp파일의 기본경로를 지정하거나 할수있다. 데이터베이스에 접근할수 있는 환경도 설정할수있다.

또 src/main/resources 하위폴더에 필요한게 있는데
mapper/exam.xml 파일이다. 기본적으로 생성되지 않으니 사용자가 직접 생성해야한다.


마지막으로 웹브라우저에 보여줄 view 파일인 .jsp 파일을 생성하면 되는데
본인같은 경우 exam.jsp 파일을 만들어서
body태그 안에 hello~ 만 간단히 적어놨다.

이렇게 설정을 마친뒤에 boot DashBoard에 있는 프로젝트를 더블클릭해서 서버를 실행한다.


내프로젝트가 화살표모양으로 바뀌면 서버가 정상실행된 상황이다.
이제 Chrome 등 웹 브라우저에서 http://localhost:9002 라고 url을 입력하면!


이렇게 내가 원하는 문자를 보여주는 웹 페이지가 보이기 시작한다!

profile
화이팅팅팅 :)

0개의 댓글