package com.app;
import java.util.ArrayList;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import com.frame.Search;
import com.frame.Service;
import com.vo.Item;
import com.vo.User;
public class App {
public static void main(String[] args) {
System.out.println("App Start ...........");
AbstractApplicationContext factory =
new GenericXmlApplicationContext("com.xml");
System.out.println("Spring Started");
//IoC
User user = new User("id01","pwd01","james");
Service service = (Service)factory.getBean("userservice");
service.register(user);
User dbuser = null;
dbuser = (User) service.get("id01");
System.out.println("Result:"+dbuser);
ArrayList<User> list = null;
list = service.get();
for (User u: list) {
System.out.println(u);
}
Search itemservice =
(Search)factory.getBean("itemservice"); // 서치기능을 사용하기 위해 서치로 캐스팅
Service serv = (Service)factory.getBean("itemservice");
ArrayList<Item> list3 = null;
list3 = serv.get(); // 어노테이션 기능이 작동하는지 확인하기위한 부분
for (Item it: list3) {
System.out.println(it);
}
ArrayList<Item> list2 = null;
list2 = itemservice.search(1000);
for(Item it:list2) {
System.out.println(it);
}
factory.close();
System.out.println("Spring End ...........");
System.out.println("App End ...........");
}
}
12212
package com.frame;
import java.util.ArrayList;
public interface Dao<K, V> {
public abstract void insert(V v);
public abstract void update(V v);
public abstract void delete(K k);
public abstract V select(K k);
public abstract ArrayList<V> select();
}
인터페이스 중 DaO 인터페이스 설정. DaO는 나중에 DB에 연결되어 쿼리문을
작동시키는 부분이 될 것임. 교육에선 K(Key)와 V(Value)값만 사용하였고, Key는 ID,
V는 클래스(여기에선 User 또는 Item)
package com.frame;
import java.util.ArrayList;
public interface Service<K,V> {
public abstract void register(V v);
public abstract void remove(K k);
public abstract void modify(V v);
public V get(K k);
public ArrayList<V> get();
}
서비스 친구들이 가져야하는 기능들을 우선 Interface에 구현
package com.frame;
import java.util.ArrayList;
public interface Search<K1,K2,V> {
public ArrayList<V> search(K1 k);
public ArrayList<V> search(K1 k1, K2 k2);
}
Service로만 하기에 부족한 기능들을 추가하는 방법. 이 예제에선 Search라는
Interface를 생성하고 추가하는 방식.
package com.vo;
public class Item {
private String id;
private int price;
private String name;
public Item() {
super();
}
public Item(String id, int price, String name) {
super();
this.id = id;
this.price = price;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Item [id=" + id + ", price=" + price + ", name=" + name + "]";
}
}
아이템 클래스 정의. 프로퍼티는 알아서 정하면 됨
package com.vo;
public class User {
private String id;
private String pwd;
private String name;
public User() {
super();
}
public User(String id, String pwd, String name) {
super();
this.id = id;
this.pwd = pwd;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", pwd=" + pwd + ", name=" + name + "]";
}
}
유저클래스 정의. 크게 특별한 내용은 없음.
댓글
댓글 쓰기