메이븐 프로젝트

조예빈·2024년 5월 20일
0

Spring

목록 보기
13/19

메이븐

  • 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴
  • 메이븐을 사용하면 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있음
  • 프로젝트 전반의 리소스 관리와 설정 파일, 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리
  • 메이븐을 사용하면 컴파일과 동시에 빌드를 수행할 수 있음
  • 관련 라이브러리도 일관성 있게 관리할 수 있어 편리함
  • 의존 관계를 자동으로 관리할 수 있음

메이븐 구성 요소

구성 요소설명
pom.xml프로젝트 정보가 표시되며 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드 할 수 있음
src/main/java자바 소스 파일이 위치
src/main/resources프로퍼티 파일이나 XML 파일 등 리소스 파일이 위치
src/main/webappWEB-INF 등 웹 애플리케이션 리소스가 위치
src/test/javaJUnit 등 테스트 파일이 위치
src/test/resources테스트 시 필요한 resource 파일이 위치

pom.xml의 프로젝트 정보 설정 태그 구성 요소

속성설명
groupId프로젝트 그룹 id를 나타내며 일반적으로 도메인 이름을 사용해 설정
artifactId프로젝트 아티팩트 id를 설정. 대개는 패키지 이름으로 설정
version프로젝트 버전 설정
packaging애플리케이션 배포 시 패키징 타입 설정. war 파일로 패키징

< dependencies > 태그 안에서 사용되는 여러 가지 태그들

속성설명
dependency해당 프로젝트에서 의존하는 다른 라이브러리 정보를 기술
groupId의존하는 프로젝트 그룹 id
artifactId의존하는 프로젝트의 artifact id
version의존하는 프로젝트 버전 정보

alias를 안쓰는 것이 유지보수에는 좋음 -> 'command + 마우스 올림'을 하면 제대로 된 파일이나 경로의 경우에는 밑줄이 뜨고, 클릭이 가능해진다. 하지만 alias는 그런 기능이 없기 때문에 나중을 보았을 때에는 오류 찾기가 더 힘들다.

db.properties

  • 전에는 MvcConfig.java에 넣어뒀던 것들을 db.properties 파일로 따로 뺌
  • 따로 파일을 빼 주면 유지보수성이 용이해짐
  • text파일이기 때문에 다시 build를 할 필요가 없음
  • spring boot의 application.property와는 상관이 없음

MvcConfig.java 필드 추가

속성
	//db.properties에 있는 속성
	@Value("${db.driver}")
	private String driver;
	@Value("${db.url}")
	private String url;
	@Value("${db.username}")
	private String username;
	@Value("${db.password}")
	private String password;
HikariCP
@Bean
	public HikariDataSource dataSource() {
		HikariDataSource dataSource = new HikariDataSource();
		dataSource.setDriverClassName(driver);
		dataSource.setJdbcUrl(url);
		dataSource.setUsername(username);
		dataSource.setPassword(password);
		return dataSource;
	}
properties 설정

설정 파일을 불러올 때에는 static을 써 주어야 호출할 수 있고, 그래야 NullPointerException이 뜨지 않는다.

@Bean
	public static PropertyPlaceholderConfigurer properties() {
		PropertyPlaceholderConfigurer config = new PropertyPlaceholderConfigurer();
		config.setLocation(new ClassPathResource("db.properties"));
		return config;
	
	}
profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글