환경설정_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을 입력하면!
이렇게 내가 원하는 문자를 보여주는 웹 페이지가 보이기 시작한다!