221018 죽순 Day10

chloe·2022년 10월 18일
0

Day010

어제 내용 복습

Bean 생성 주입 연습문제

루피 다운로드

  • ImageUtil 클래스를 Bean으로 생성하고 save 메소드를 실행하여
    URL의 이미지를 다운로드하기
  1. ImageUtil
    피뎊에 있는 소스 복붙하고 컴포넌트 어노테이션 불러오기
import java.net.URL;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
@Component                             // <--- 컴포넌트 어노테이션 적어주기
public class ImageUtil {
public void save(String path) throws IOException {
URL url = null;
url = new URL(path);
String fileName = path.substring(path.lastIndexOf("/") + 1);
String fileExt = path.substring(path.lastIndexOf(".") + 1);
BufferedImage img = ImageIO.read(url);
ImageIO.write(img, fileExt, new File(fileName));
}
}
  1. BeanConfig
    @component 붙인 부분을 @componentScan으로 가져오기
// @component이 붙은 걸 스캔한다. BeanConfig 클래스에 저장
@ComponentScan(basePackageClasses = BeanConfig.class) 
  1. DemoApplication
    메소드 실행?!
ApplicationContext context4 = new AnnotationConfigApplicationContext(BeanConfig.class); // BeanConfig 클래스에 있는 애를 가져오겠다??
ImageUtil ima = (ImageUtil) context4.getBean("imageUtil"); // getBean으로 가져올 때 클래스이름과 동일해야함 (첫글자만 소문자로 변경)
ima.save("http://ggoreb.com/images/luffy.jpg"); // save변수는 String 타입 받으니까. ""여기에 주소 쓰기
((AnnotationConfigApplicationContext) context4).close();
        

예외

오류의 종류

컴파일 오류

int a = 1.2;

요런건 1.2가 integer가 아니니까 컴파일 자체가 안 됨

런타임 오류

		System.out.println(4 / 0); // Arithmetic 산술에러
		System.out.println(new String().charAt(1)); // IndexOutOfBounds 문자열이 없는데 범위를 지정하려 하니까??
		String str = null;
		System.out.println(str.equals("")); // NullPointer
		int[] arrs = new int[-1]; // NegativeArraySize 배열인데 -1이라는 사이즈를 가질 수는 없으니께
		String s = "Exception";
		int count = s.indexOf("a"); // String s에 a라는 글자가 있는지 확인. 없으면 -1을 반환. count에 -1이 들어가게 되는거
		int[] arrays = new int[count]; // NegativeArraySize 배열값이 -1이 될 수 없음
		System.out.println(arrays);

컴파일은 되지만 오류메시지 나옴

논리오류

		new File("").createNewFile(); //임포트 에러

얜 뭐가 오류인지 모르겠당 임포트 에러??

예외처리

if문을 이용한 예외처리

솔직히 이건 무슨 말인지 모르겠음

try-catch문을 이용한 예외처리

try {
예외 발생 가능 코드
} catch (예상하는 Exception) {
예외처리 - 정상실행되면 catch되지 않음
} finally {
항상 실행 부분
}

		Object obj = new String("a");
		try {
			int a = (Integer) obj;
			System.out.println("정상실행여부확인: " + a);
		} catch (ClassCastException e) { // 형변환 실패를 한다면
			System.out.println("에러메시지\n" + e.getMessage()); //예외에 대한 메시지 (에러내용)
			System.out.println();
			e.printStackTrace(); //sysou처럼 프린트 시켜줌, exception에대한 메시지 출력
		} finally {
			System.out.println("항상실행====");
		}

EX/ 파일 읽어오는 코드 예외처리

		try {
		BufferedReader reader = new BufferedReader(new FileReader("data/소나기.txt"));
		String text = "";
		while (true) {
			String data = reader.readLine();
			if (data == null)
				break;
			text += data + "\n";
		}
		reader.close();
		System.out.println(text);
		} catch (IOException e) {
			System.out.println("에러메시지\n" + e.getMessage());
		}finally {
			System.out.println(" fin.=========");
		}
               

예외 떠넘기기 throws

1 메소드의 선언부에 throws 예외클래스1, 예외클래스2, ...
2 메소드를 호출한 곳으로 떠넘김

Spring MVC

Model - Viw - Controller
프론트와 백엔드 분리를 위해... ???
controller는 뭐하는 거지
model은??

해야될 공부

  • MVC가 뭔지 감 잡기
  • 빈 생성, 사용 방법별로 따로 파일 만들어서 하나씩 해볼 것

사족

루피 쳐다보기도 싫다

0개의 댓글

관련 채용 정보