21.03.09 Untact프로젝트( 관리자 회원관리기능, swagger 적용, 회원섬네일 추가, 각종 버그 수정 등)
2021. 3. 9. 22:23ㆍJAVA/Spring & Vue APP 프로젝트(백엔드)
# 주요 소스코드
<SwaggerConfig.java>
package com.sbs.untact.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2).select()
.apis(RequestHandlerSelectors.basePackage("com.sbs.untact.controller"))
.paths(PathSelectors.ant("/usr/**")).build().apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("커뮤니티 사이트 API").description("회원가입, 게시물 작성 등의 기능을 제공합니다.")
.contact(new Contact("제작자", "https://github.com/jhs512/untactTeacher", "jangka512@gmail.com"))
.version("0.1").build();
}
}
<SwaggerUiWebMvcConfigurer.java>
package com.sbs.untact.config;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class SwaggerUiWebMvcConfigurer implements WebMvcConfigurer {
private final String baseUrl;
public SwaggerUiWebMvcConfigurer(String baseUrl) {
this.baseUrl = baseUrl;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String baseUrl = StringUtils.trimTrailingCharacter(this.baseUrl, '/');
registry.addResourceHandler(baseUrl + "/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
.resourceChain(false);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController(baseUrl + "/swagger-ui/")
.setViewName("forward:" + baseUrl + "/swagger-ui/index.html");
}
}
<list.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="../part/mainLayoutHead.jspf"%>
<section class="section-1">
<div class="bg-white shadow-md rounded container mx-auto p-8 mt-8">
<div class="flex">
<select class="py-2 select-auth-level">
<option value="">전체</option>
<option value="3">일반회원</option>
<option value="7">관리자</option>
</select>
<script>
if ( !param.authLevel ) {
param.authLevel = '';
}
$('.section-1 .select-auth-level').val(param.authLevel);
$('.section-1 .select-auth-level').change(function() {
location.href = '?authLevel=' + this.value;
});
</script>
</div>
<div>
<c:forEach items="${members}" var="member">
<c:set var="detailUrl" value="detail?id=${member.id}" />
<div class="flex items-center mt-10">
<a href="${detailUrl}" class="font-bold">NO. ${member.id}</a>
<a href="${detailUrl}" class="ml-2 font-light text-gray-600">${member.regDate}</a>
<div class="flex-grow"></div>
<a href="?authLevel=${member.authLevel}" class="cursor-pointer px-2 py-1 bg-${member.authLevelNameColor}-600 text-${member.authLevelNameColor}-100 font-bold rounded hover:bg-${member.authLevelNameColor}-500">${member.authLevelName}</a>
</div>
<div class="mt-2">
<a href="${detailUrl}" class="mt-2 text-gray-600 block">
<span class="inline-flex justify-center items-center px-2 rounded-full bg-green-500 text-white">로그인 아이디</span>
<span>${member.loginId}</span>
</a>
<a href="${detailUrl}" class="mt-2 text-gray-600 block">
<span class="inline-flex justify-center items-center px-2 rounded-full bg-green-500 text-white">이름</span>
<span>${member.name}</span>
</a>
<a href="${detailUrl}" class="mt-2 text-gray-600 block">
<span class="inline-flex justify-center items-center px-2 rounded-full bg-green-500 text-white">로그인 아이디</span>
<span>${member.nickname}</span>
</a>
</div>
<div class="flex items-center mt-4">
<a href="detail?id=${member.id}" class="text-blue-500 hover:underline" title="자세히 보기">
<span>
<i class="fas fa-info"></i>
<span class="hidden sm:inline">자세히 보기</span>
</span>
</a>
<a href="modify?id=${member.id}" class="ml-2 text-blue-500 hover:underline">
<span>
<i class="fas fa-edit"></i>
<span class="hidden sm:inline">수정</span>
</span>
</a>
<a onclick="if ( !confirm('삭제하시겠습니까?') ) return false;" href="doDelete?id=${member.id}" class="ml-2 text-blue-500 hover:underline">
<span>
<i class="fas fa-trash"></i>
<span class="hidden sm:inline">삭제</span>
</span>
</a>
<div class="flex-grow"></div>
<div>
<a class="flex items-center">
<img
src="https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=731&q=80"
alt="avatar" class="mx-4 w-10 h-10 object-cover rounded-full">
<h1 class="text-gray-700 font-bold hover:underline">${member.nickname}</h1>
</a>
</div>
</div>
</c:forEach>
</div>
</div>
</section>
<%@ include file="../part/mainLayoutFoot.jspf"%>
'JAVA > Spring & Vue APP 프로젝트(백엔드)' 카테고리의 다른 글
21.03.16 lamplight서비스 프로젝트(test DB 설계) (0) | 2021.03.16 |
---|---|
21.03.10 Untact프로젝트(관리자 회원가입시 아이디 중복체크 자동화) (0) | 2021.03.10 |
21.03.06 Untact프로젝트(첨부파일 다운로드, 게시물 리스트에서 첨부 이미지 가져오는 쿼리를 게시물 마다 1번씩 실행하지 않도록 로직 수정, 관리자 회원가입 등 ) (0) | 2021.03.06 |
21.03.05 Untact프로젝트(게시물 수정 페이지에서 기존에 업로드된 파일 노출, 수정, 삭제, 용량 표시 등 ) (0) | 2021.03.05 |
21.03.04 Untact프로젝트(파일업로드 ajax방식으로 처리, 파일 반복문 처리, 파일 저장까지) (0) | 2021.03.04 |