//////
Search
🏣

20221026회고

태그
SpringBoot
날짜
텍스트
SpringBoot 시작
Spring AOP
핵심기능(비즈로직)과 부가기능(로깅, 모니터링, 트랜잭션, 캐싱...)으로 나누는 디자인 방식
Spring은 비즈니스 로직에 집중할 수 있도록 그래서 생산성을 높일 수 있는 방향으로 진화 하고 있습니다.
모든 페이지에서 전역적으로 사용하는것
ex) 회원 권한, 로깅 등등
공통된것을 뺀다는 것은 객체지향에 알맞는 기능
controller : 받아오기만 하는것 → 맵핑해주는 역할이 크다, 정보를 받아오기 받아준다.
service : 핵심적인 비즈니스로직
dao : db와 교류를 하는것, 우리가 만든 UserDao같은것
controller 예시
@PostMapping("findPW") public String findPWPost(@ModelAttribute UserVo userVo) throws Exception { String result = userService.findPw(userVo); if (result.equals("success")) { return "redirect:./login"; } else { return "redirect:./"; }
Java
복사
위의 코드와 같이 controller는 받아온 정보를 저장하고 맵핑만 해줄 뿐 핵심적인 로직은 userService.findPw를 호출해 하는것이다.
service 예시
public void sendEmail(UserVo userVo, String div) throws Exception { // Mail Server 설정 String charSet = "utf-8"; String hostSMTP = "smtp.gmail.com"; //구글 이용시 smtp.gmail.com 네이버 이용시 smtp.naver.com String hostSMTPid = "lunchwb@gmail.com"; String hostSMTPpwd = "gnzwzjrgdidbwxjm"; // 보내는 사람 EMail, 제목, 내용 String fromEmail = "lunchwb@gmail.com"; String fromName = "부장님요기요"; String subject = "부장님 요기요 임시 비밀번호 입니다."; String msg = ""; if(div.equals("findpw")) { subject = "부장님요기요 임시 비밀번호 입니다."; msg += "<div align='center' style='border:1px solid black; font-family:verdana'>"; msg += "<h3 style='color: blue;'>"; msg += userVo.getUserEmail() + "님의 임시 비밀번호 입니다. 비밀번호를 변경하여 사용하세요.</h3>"; msg += "<p>임시 비밀번호 : "; msg += userVo.getUserPassword() + "</p></div>"; } // 받는 사람 E-Mail 주소 String mail = userVo.getUserEmail(); try { HtmlEmail email = new HtmlEmail(); email.setDebug(true); email.setCharset(charSet); email.setSSLOnConnect(true); email.setHostName(hostSMTP); email.setSmtpPort(465); //네이버 이용시 587 구글 이용시 465 email.setAuthentication(hostSMTPid, hostSMTPpwd); email.setStartTLSEnabled(true); email.addTo(mail, charSet); email.setFrom(fromEmail, fromName, charSet); email.setSubject(subject); email.setHtmlMsg(msg); email.send(); } catch (Exception e) { System.out.println("메일발송 실패 : " + e); } }
Java
복사
비즈니스 로직을 해결하는 부분이다.
Maven ,Gradle 차이점 gradle이 훨씬 깔끔하다 Gradle이 버전관리를 굳이 할 필요가 없다. Maven이 먼저나왔다. Gradle은 작업 의존성 그래프를 기반으로하는 반면 Maven은 고정적이고 선형적인 단계의 모델을 기반으로한다고 한다.