스프링 세팅

김세호·2023년 2월 15일
0
post-custom-banner

4월 20일
메이븐 : 자바용 프로젝트 관리 도구 pom.xml
라이브러리 종속성 : 메이븐을 통해 관리하기 떄문에 pom.xml 문서에 등록을 하면 메이븐이 자동으로 다운을 함.

구글 maven repository 검색 https://mvnrepository.com/
여기서 필요한 라이브러리를 다운받을거임

lombok 검색해서 프로젝트 롬복 들어가서 사람들이 많이사용한거 받아서 써
그거 복사해서 pom.xml에 넣고

repostiory 폴더에 projectlombok lombok 있는지 확인

그다음 STS 끄고 다시키기

그다음 다시 그폴더에서 lombok어쩌고.jar (소스말고)더블클릭
그다음 STS.exe 파일 찾아서 실행 그다음 인스톨

압축 파일로 뜨면 sts 폴더 주소 복사C:\spring\apache-maven-3.8.5\repository\org\projectlombok\lombok\1.18.12

그다음 cmd창 .12.jar키고 cd+ 쒸프트키 어쩌고 누르고
-jar lombok-1.18.12.jar 누르고 엔터

다시 STS 키기

스프링 특징
1 DI 의존성 주입 :객체간 의존관계 설정 개발자가 직접 의존하는 객체를 생성 할 필요없음
2.AOP 관점지향 프로그래밍: DB 트랜잭션커밋롤백처리 관리등
3.스프링 JDBC :마이바티스 연결하고 좋음
4.스프링 MVC

IOC: 프로그램 구동하는데 필요한 객체 생성 new Con(); 이거를 내가아니라 스프링이 함

사용하는 객체 컨테이너 Bean

TV인터페이스를 상속받은 LGTV
TV tv = new LGIV(): 이렇게 가능

bean 등록 어노테이션
@Component :태그 역할
@Controller :
@Service :
@Repository :DAO역할

web.xml 역할 -
서버가 시작될 때 읽어와야 할 설정들을 명시하는 곳

servlet-context.xml
스프링 관련 설정을 작성하는 파일


4월 21일 :노트부분 정리 오토와이어

디비랑 연동하려고
메이븐리포지토리에서 받아야할 꺼 세개
1.ojdbc6
2.spring-jdbc 5.0.6 버전
3.commons-dbcp 1.4버전

---------------------------------------------- 세팅 하는거-----
1.스프링 레거시 프로젝트 생성하고 탬풀랫에서 스프링MVC프로젝트선택후 넥스트 그다음 주소 거꾸로 쓰기 kr.or.iei
2.버전 pom.xml ->overview 가서 자바1.8버전 스프링 5.0.6 릴리즈, 프로젝트 프로퍼티가서 project facet 버전 1.8 및 아파치톰캣 선택
3.라이브러리 jstl 만 생성해서 가져오기
4.webapp에 index.jsp 만들어보고 서버-module 가서 path '/'로 설정후 잘되나 테스트
***^^^^^^제일 기본 세팅 ^^^^^*
4.각종 패키지및 클래스 생성
5.롬복 설정 pom.xml 롬복 복사.

	<dependency>
	    <groupId>org.projectlombok</groupId>
	    <artifactId>lombok</artifactId>
	    <version>1.18.12</version>
	    <scope>provided</scope>
	</dependency>

VO가서 @no @all @Data
6.web.xml에서 디스패처가 처리할 url패턴 메인페이지 '/'되어있는걸 .do로 끝나는걸 디스패처 서블릿이 모두 처리할수 있게 *.do 로 설정
7. 서버 시작시 객체 자동으로 생성되게하는조건 1.@컴포넌트(컨트롤러될수있고 등등) 2.servlet-context.xml 가서 컴포넌트 스캔범위 설정 추가해주기 kr.or.member라던지 패키지주소

7-1)컨트롤러에서 @RequestMapping(value="/test.do")핸들러 매핑 처리해줄 주소를 적어주고 밑에 클래스를 적어주는거

7-2)@AutoWired: 변수 위에 붙어있으면 스프링이 서버 시작 시 '자동'으로만든 객체들 Member등 일치하는게 있으면 바로 사용가능하게 연결시켜줌
만약 컴포넌트 아닌 객체이면 객체가 없어서, 에러2개나옴 그중 하나가 NoSuchBean 에러나옴
이번엔 객체생성이 2개이상이 되면 컴퓨터는 선택상황이면 에러나기때문에 NoUiqueBean 에러나옴 이럴땐 원하는 객체 넣고싶으면 @Qualifier(value="name")

이 오토와이어랑 퀄리파이어 합친게 @Resource

8.컨트롤러는 항상 서비스 필요하니까
컨트롤러 @오토와이어 private MemberService service;
MemberService 객체는 @컴포넌트 걸어야함.
그럼 마찬가지로 DAO도 그렇게 되겠지??

--이제부턴 Jdbc랑 자바랑 연결-
9-1.메이븐 ojdbc6복사해서 pom.xml에 붙여넣기
9-2.spring-jdnc ->5.0.6버전 복사해서 pom.xml 붙여넣기
9-3. commons-dbcp ->1.4버전 복사해서 pom.xml 붙여넣기

10.servlet-context.xml에서 DB 접속정보를 저장하는 객체 생성,JDBC템플릿 생성

<beans:bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp2.BasicDataSource">
	<beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	<beans:property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
	<beans:property name="username" value="spring"/>
	<beans:property name="password" value="spring"/>
</beans:bean>	
<!-- JDBCETemplate 생성 -->
<beans:bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
	<beans:property name="dataSource" ref="dataSource"/><!--이 위에 양식이 데이터소스에 그대로 들어가나봐  -->
</beans:bean>

11.JDBC템플릿이못하는 쿼리문 조회결과를 어떻게 처리할지 클래스 객체 만들어줌
MemberRowMapper 여기에는 @Override 걸어줘야함 : 매개변수만 다른것.

  1. web.xml에서 인코딩할꺼도 필터로 처리해줌

    characterEncoding
    org.springframework.web.filter.CharacterEncodingFilter

    encoding
    utf-8

이것도 url패턴 전체로 해준다

characterEncoding
*.do

04/25
--파일네임은 파일을 올렸을 때 원본파일 저장, 파일패스는 원본파일이 아닌 실제 우리가 서버에 업로드하는 파일명 저장 이게 한세트에 파일1개
인풋은 name 속성으로 구별해
그 중 여러개 파일로 올리고 싶으면

->이렇게하면 name=file 하나에 여러개의 파일이 묶임 즉
file.file1
file.file2
file.file3
그런데 cos는 같은 키값이 있으면 덮어 씌워져
그래서 결국에는 file.file3 이거 하나만 올라가지
쉽기는 하지만(멀티파트리퀘스트:파일업로드 자동처리 파일명이 겹치는경우 리네임하는거), 하나밖에 안올라간다는 단점이 있어
구글에 cos라이브러리 추가해서 사용하는거는 구글에 검색하면 잘나옴 하지만 멀티플 이용해서 하는게 좋아 .

사용법
1.라이브러리 검색 pom.xml 추가
메이븐:Apache Commons IO 2.4버전 pom.xml 추가
commons-fileupload검색 Apache Commons FileUpload 1.3.1버전 pom.xml추가

	<dependency>
	    <groupId>commons-io</groupId>
	    <artifactId>commons-io</artifactId>
	    <version>2.4</version>
	</dependency>
	<!--commons-fileupload -->
		<dependency>
		    <groupId>commons-fileupload</groupId>
		    <artifactId>commons-fileupload</artifactId>
		    <version>1.3.1</version>
		</dependency>

2.필요한 객체 생성코드 작성(servlet-context.xml)

<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- id는 꼭 멀티파트리졸버로 작성하기 라이브러리 잘 다운되었다면 class 자동완성 되어야함 -->
	<beans:property name="maxUploadSize" value="10485760"></beans:property><!-- 10메가로 제한 -->
</beans:bean>

TestVO
HTTP 상태 400 - 잘못된 요청 (bad request)
404 =not found 자원을 찾을 수 없다매핑이나 오타

val("") 과 null은 달라.
비어있는상태로 전송을 하면 비어있는 문자열이 전송됨
String A = ""; 이거는 문제업성
int B = ""; 이거는 문제 있지 이것도 400 에러 어딘가 자료형이 틀어지면 400에러가 나와 스프링은 안알려줘
에러 의심할땐 VO가서 string의심할필요없어 int정수 요놈이 문제야
val("")이 들어오는겨우는 즉 name은 일치하고 값이없을때고, 일치하는 name이 없을때는 null이 들어와

만약에 name이 없을때 int는 기본값 0

객체류는 다 기본값이 세팅되는데 참조형객체형은 null 숫자는 0 불리언=false 등등.. 이건 그냥 네임값이 없는거랑 같은거

아작스
JSON 1.라이브러리 pom.xml에 쓰기
근데 gson 2.8.5 쓰자 걍

	<dependency>
	    <groupId>com.google.code.gson</groupId>
	    <artifactId>gson</artifactId>
	    <version>2.8.5</version>
	</dependency>

제이슨 지슨의 문제는 인코딩안되고, 리턴이 스트링으로 되어서 객체배열단위로 나뉘지 않는다
그래서 @RequestMapping(value= "/ajaxAllMember.do" , produces = "application/json;charset=utf-8") 추가시켜줘야해

post-custom-banner

0개의 댓글