서비스 또는 저장소라고 부른다.
DB와 연동하는 부분 구현하는 설계 부분
- pom.xml파일에 몽고 db 사용 dependency를 추가한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
- application.properties 파일에 설정하기
# db 연동
spring.data.mongodb.uri=mongodb://id202:pw202@1.234.5.158:37017/db202
spring.data.mongodb.database=db202
MemberDB.java
@Service
public interface MemberDB {
// 추가할 내용을 member로 주면 추가한 후에
// 실제 추가된 내용을 반환
public Member insertMember(Member member);
}
- MemberDBImpl.java 설계 부분에 @Autowired하기
private 붙인다.
@Service
public class MemberDBImpl implements MemberDB {
// 환경설정으로 생성된 객체를 가져옴
@Autowired
private MongoTemplate mongodb;
@Override
public Member insertMember(Member member) {
try {
return mongodb.insert(member);
// T는 내가 만든 타입으로 만들어라
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
기존 자바에서는 생성자에서 db연동을 했었음.
스프링에서는 application.properties에 이미 연동 되어있음.
연동 된 정보만 불러오면 됨.
불러오는 방법은 @Autowired를 쓴다.
다음과 같이 불러오면 T라는 걸 볼 수 있는데, 여기서 T는
내가 만든 타입으로 만들어라는 것임. 리턴 값 또한 T이기 때문에 바로 리턴
MemberController.java
public class MemberController {
@Autowired
private MemberDB memberDB;
@PostMapping(value = { "/insert" })
public String insertPOST(
@ModelAttribute Member mem) {
System.out.println(mem.toString());
memberDB.insertMember(mem);
return "redirect:/member/insert";
}
}
@Autowired를 통해 memberDB를 불러온다.
원래 자바에서는 MemberDB db = new MemberDBImpl()이렇게 불러왔었음.