list, map, @Autowired
2024. 2. 28. 23:37ㆍDaily Codig Reminder
collection_list
@SpringBootApplication
/// 서브패키지에 있는 @JavaConfig 자동생성함
public class Sample01BeanApplication {
public static void main(String[] args) {
ApplicationContext ctx= SpringApplication.run(Sample01BeanApplication.class, args);
DBService service= ctx.getBean("myService", DBService.class);
List<String> list= service.list();
System.out.println(list.size());
for (String s : list) {
// List<String> data= dao.list();
System.out.println(s);
}
}
}
@Configuration
public class JavaConfig {
@Bean
public DBOracleDAO dao(List<String> list) {
return new DBOracleDAO(list);
}
// @Bean
// public DBMYSQLDAO dao2(List<String> list) {
// return new DBMYSQLDAO(list);
// }
@Bean
public List<String> list() {
return Arrays.asList("홍길동1", "홍길동2");
}
@Bean("myService")////////////////////////
public DBService service(DBDao xxx) { //by type 주입
return new DBService(xxx);///////////////
}
}
//@Service("myService")
public class DBService {
DBDao dao;
public DBService(DBDao dao) {
super();
this.dao = dao;
}
public List<String> list() {
return dao.list();
}
public DBDao getDao() {
return dao;
}
public void setDao(DBDao dao) {
this.dao = dao;
}
}
public interface DBDao {
public abstract List<String> list();
}
public class DBMYSQLDAO implements DBDao {
List<String> list;
public DBMYSQLDAO(List<String> list) {
super();
this.list = list;
}
@Override
public List<String> list() {
// TODO Auto-generated method stub
return list;
}
}
public class DBOracleDAO implements DBDao {
List<String> list;
public DBOracleDAO(List<String> list) {
super();
this.list = list;
}
public List<String> list(){
return list;
}
}
2
홍길동1
홍길동2
list
javaconfig
- list 빈생성
- mysqldao list 주입
- oracledao list 주입
- service에 mysql, oracledao 주입
DBservice 수정
:dao 를 여러개 가질 수 있도록 멤버변수 수정
.getList 함수의 구현: List<dao> 리턴
메인의 수정
service 의 dao 리스트를 가져와 전체 순회하면서 데이터 출력
//@Service("myService")
public class DBService {
List<DBDao> list;
public DBService(List<DBDao> list) {
super();
this.list = list;
}
public List<DBDao> getList() {
return list;
}
public void setList(List<DBDao> list) {
this.list = list;
}
}
@Configuration
public class JavaConfig {
@Bean
public List<String> list() {
return Arrays.asList("홍길동1", "홍길동2");
}
@Bean
public DBOracleDAO dao(List<String> list) {
return new DBOracleDAO(list);
}
@Bean
public DBMYSQLDAO dao2(List<String> list) {
return new DBMYSQLDAO(list);
}
@Bean("myService")////////////////////////
public DBService service(List<DBDao> list) { //by type 주입
return new DBService(list);///////////////
}
}
@SpringBootApplication
/// 서브패키지에 있는 @JavaConfig 자동생성함
public class Sample01BeanApplication {
public static void main(String[] args) {
ApplicationContext ctx= SpringApplication.run(Sample01BeanApplication.class, args);
DBService service= ctx.getBean("myService", DBService.class);
List<DBDao> list= service.getList();
System.out.println(list.size());
for (DBDao dao : list) {
List<String> data= dao.list();
System.out.println(data);
}
}
}
public interface DBDao {
public abstract List<String> list();
}
public class DBMYSQLDAO implements DBDao {
List<String> list;
public DBMYSQLDAO(List<String> list) {
super();
this.list = list;
}
@Override
public List<String> list() {
// TODO Auto-generated method stub
return list;
}
}
public class DBOracleDAO implements DBDao {
List<String> list;
public DBOracleDAO(List<String> list) {
super();
this.list = list;
}
public List<String> list(){
return list;
}
}
2
[홍길동1, 홍길동2]
[홍길동1, 홍길동2]
list
@Configuration
public class JavaConfig {
@Bean("xx1")
public List<String> list(){
return Arrays.asList("홍길동1","홍길동2");
}
@Bean("xx2")
public List<String> list2(){
return Arrays.asList("홍길동3","홍길동4");
}
@Bean
public DBMYSQLDAO dao1 (List<String> xx1) {
return new DBMYSQLDAO(xx1);
}
@Bean
public DBOracleDAO dao2 (List<String> xx2) {
return new DBOracleDAO(xx2);
}
@Bean("myService")
public DBService service(List<DBDao> list) { //by type 주입
return new DBService(list);
}
map2
public interface DBDao {
public abstract List<String> list(); //추상함수
}
public class DBMYSQLDAO implements DBDao {
@Override
public List<String> list() {
return Arrays.asList("mysql 홍길동2", "mysql 이순신2");
}
}
public class DBOracleDAO implements DBDao{
public List<String> list() {
return Arrays.asList("mysql 홍길동2", "mysql 이순신2");
}
}
public class DBService {
//one, mySQLSAO-list()
//two, oracleDAO - list()
Map<String, DBDao> list;
public Map<String, DBDao> getList() {
return list;
}
public void setList(Map<String, DBDao> list) {
this.list = list;
}
public DBService(Map<String, DBDao> list) {
super();
this.list = list;
}
}
@Configuration
public class JavaConfig {
@Bean("one")
public DBOracleDAO one() {
return new DBOracleDAO(); //one/DBOracleDAO
}
@Bean("two")
public DBMYSQLDAO two() { //two/DBMYSQLDAO
return new DBMYSQLDAO();
}
@Bean("myService")
public DBService service( Map <String, DBDao> map) { //bytype 주입
//one/DBOracleDAO
//two/DBMYSQLDAO
//service 에 저장
return new DBService(map);
}
}
@SpringBootApplication
public class Boot05Di4CollectionList3Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionList3Application.class, args);
DBService service = ctx.getBean("myService",DBService.class);
Map<String, DBDao> map = service.getList();
Set<String> keys= map.keySet();
// Map의 키셋을 사용하여 전체 순회
for (String key : keys) {
List<String> list= map.get(key).list();
for (String s : list) {
System.out.println(s);
}
}
}
결과
mysql 홍길동2
mysql 이순신2
mysql 홍길동2
mysql 이순신2
map3
bean(”one”) 으로 안하고 함수이름 one으로 하기
@Bean
public DBMYSQLDAO two() { //two/DBMYSQLDAO
return new DBMYSQLDAO();
}
map
public class DBMYSQLDAO implements DBDao {
@Override
public Map<String, String> list() {
Map<String, String> map= new HashMap<>();
map.put("one", "홍길동1");
map.put("two", "홍길동2");
// Map의 값들을 List에 담아서 반환
return map;
}
}
public class DBOracleDAO implements DBDao{
@Override
public Map<String, String> list() {
Map<String, String> map= new HashMap<>();
map.put("one", "홍길동3");
map.put("two", "홍길동4");
return map;
}
}
public interface DBDao {
public abstract Map<String, String> list();
}
public class DBService {
//one, mySQLSAO-list()
//two, oracleDAO - list()
List<DBDao> list;
public List<DBDao> getList() {
return list;
}
public void setList(List<DBDao> list) {
this.list = list;
}
public DBService(List<DBDao> list) {
super();
this.list = list;
}
}
@Configuration
public class JavaConfig {
@Bean("one")
public DBOracleDAO one() {
return new DBOracleDAO(); //one/DBOracleDAO
}
@Bean("two")
public DBMYSQLDAO two() { //two/DBMYSQLDAO
return new DBMYSQLDAO();
}
@Bean("myService")
public DBService service( List<DBDao> list) { //bytype 주입
//one/DBOracleDAO
//two/DBMYSQLDAO
//service 에 저장
return new DBService(list);
}
}
@SpringBootApplication
public class Boot05Di4CollectionList3Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionList3Application.class, args);
DBService service = ctx.getBean("myService",DBService.class);
List<DBDao> list= service.getList();
for (DBDao dao : list) {
// System.out.println(s);
Map<String, String> map = dao.list();
Set<String> keys= map.keySet();
for (String key : keys) {
System.out.println(key+"\t"+ map.get(key));
}
}
}
}
출력
one 홍길동3
two 홍길동4
one 홍길동1
two 홍길동2
map5
@Bean
public Map<String, String> map1() {
Map<String, String> map = new HashMap<>();
map.put("one", "홍길동1");
map.put("two", "홍길동2");
return map; //one/DBOracleDAO
}
@Bean
public Map<String, String> map2() {
Map<String, String> map = new HashMap<>();
map.put("one", "홍길동3");
map.put("two", "홍길동4");
return map; //one/DBOracleDAO
}
@Bean
public DBOracleDAO dao1( Map<String, String> map1) { //two/DBMYSQLDAO
return new DBOracleDAO();
}
@Bean("two")
public DBMYSQLDAO dao2( Map< String, String> map2) { //two/DBMYSQLDAO
return new DBMYSQLDAO();
}
@Bean("myService")
public DBService service( List<String, DBDao> list) { //bytype 주입
//one/DBOracleDAO
//two/DBMYSQLDAO
//service 에 저장
return new DBService(list);
}
@Autowired
public class DBService {
@Autowired //byType
DBDao dao; // 변수의 접근 제어자를 private로 변경
//dao 인지 dao2인지 찾아서 들어감
// 생성자의 매개변수를 통해 DBDao 주입
public DBService(DBDao dao) {
this.dao = dao;
}
// 메소드 이름 수정 및 리턴 타입 지정
public List<String> getList() {
return dao.list();
}
// 불필요한 생성자 제거
public DBService() {
super();
}
public DBDao getDao() {
return dao;
}
// setter 메소드의 매개변수 이름 변경
public void setDao(DBDao dao) {
this.dao = dao;
}
public List<String> list() {
// TODO Auto-generated method stub
return this.dao.list();
}
}
@Configuration
public class JavaConfig {
@Bean
public DBOracleDAO dao() {
return new DBOracleDAO();
}
// @Bean
// public DBMYSQLDAO dao2() {
// return new DBMYSQLDAO();
// }
@Bean("myService") //// default Singletone
public DBService service() { // by type service 에서 autowired
// DBService service = new DBService();
return new DBService();
}
}
@SpringBootApplication
public class Boot05Di4CollectionListApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionListApplication.class, args);
DBOracleDAO dao = ctx.getBean("dao", DBOracleDAO.class);
DBService service = ctx.getBean("myService", DBService.class);
List<String> list = service.list();
System.out.println(list);
}
}
출력
[oracle 홍길동, oracle 이순신]
@Quarifier 로 id 부여
public class DBService {
@Autowired //byType
@Qualifier("xxx")
DBDao dao;
출력
[oracle 홍길동, oracle 이순신]
config 에서 bean 생성을 안하고
@SpringBootApplication
public class Boot05Di4CollectionListApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionListApplication.class, args);
DBOracleDAO dao = ctx.getBean("DBOracleDAO", DBOracleDAO.class);
DBService service = ctx.getBean("myService", DBService.class);
List<String> list = service.list();
System.out.println(list);
}
}
@Service("myService")
public class DBService {
@Autowired //byType
DBDao dao; // 변수의 접근 제어자를 private로 변경
//dao 인지 dao2인지 찾아서 들어감
// 생성자의 매개변수를 통해 DBDao 주입
@Repository
public class DBOracleDAO implements DBDao {
@autowired list
@Service("myService")
public class DBService {
@Autowired
DBDao dao;
public DBDao getDao() {
return dao;
}
public void setDao(DBDao dao) {
this.dao = dao;
}
public DBService(DBDao dao) {
super();
this.dao = dao;
}
public List<String> list(){
return dao.list();
}
}
@Repository
public class DBOracleDAO implements DBDao {
@Autowired
List<String> list;
public DBOracleDAO(List<String> list) {
// TODO Auto-generated constructor stub
}
@Override
public List<String> list() {
// TODO Auto-generated method stub
return Arrays.asList("oracle 홍길동", "oracle 이순신");
}
}
public class DBMYSQLDAO implements DBDao {
@Autowired
List<String> list;
public DBMYSQLDAO (List<String> list) {
super();
this.list =list;
}
@Override
public List<String> list() {
return list;
}
}
@Configuration
public class JavaConfig {
@Bean
public List<String> list(){
return Arrays.asList("홍길동1","홍길동2");
}
2
oracle 홍길동
oracle 이순신
list2
@Repository
public class DBOracleDAO implements DBDao {
@Autowired
List<String> list;
public DBOracleDAO(List<String> list) {
// TODO Auto-generated constructor stub
}
@Override
public List<String> list() {
// TODO Auto-generated method stub
return Arrays.asList("oracle 홍길동", "oracle 이순신");
}
}
@Repository
public class DBMYSQLDAO implements DBDao {
@Autowired
List<String> list;
public DBMYSQLDAO (List<String> list) {
super();
this.list =list;
}
@Override
public List<String> list() {
return list;
}
}
@Service("myService")
public class DBService {
@Autowired
List<DBDao> list;
public List<DBDao> getList() {
return list;
}
public void setList(List<DBDao> list) {
this.list = list;
}
}
@SpringBootApplication
public class Boot05Di4CollectionList3Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionList3Application.class, args);
DBService service = ctx.getBean("myService",DBService.class);
List<DBDao> list= service.getList();
System.out.println(list.size());
for (DBDao dbDao : list) {
System.out.println(dbDao.list());
}
}
}
@Autowired_map
@SpringBootApplication
public class Boot05Di4CollectionList3Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Boot05Di4CollectionList3Application.class, args);
DBService service = ctx.getBean("myService",DBService.class);
Map<String, String> map = service.getList();
Set<String> keys= map.keySet();
// Map의 키셋을 사용하여 전체 순회
for (String key : keys) {
System.out.println(key);
System.out.println(map.get(key));
}
}
}
@Configuration
public class JavaConfig {
@Bean
public Map<String, String> map() {
Map<String, String> map = new HashMap<>();
map.put("one", "홍길동1");
map.put("two", "홍길동2");
return map;
}
}
public interface DBDao {
public abstract Map<String, String> list();
}
public class DBMYSQLDAO implements DBDao {
@Autowired
Map<String, String> map;
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public Map<String, String> list() {
// TODO Auto-generated method stub
return this.map;
}
}
@Repository
public class DBOracleDAO implements DBDao {
@Autowired
Map<String, String> map;
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public Map<String, String> list() {
// TODO Auto-generated method stub
return this.map;
}
}
@Service("myService")
public class DBService {
@Autowired
DBDao dao;
public DBDao getDao() {
return dao;
}
public void setDao(DBDao dao) {
this.dao = dao;
}
public Map<String, String> getList() {
// TODO Auto-generated method stub
return dao.list();
}
}
one
홍길동1
two
홍길동2
'Daily Codig Reminder' 카테고리의 다른 글
boot-database (0) | 2024.03.11 |
---|---|
component-scan (0) | 2024.03.11 |
springboot (1) | 2024.02.28 |
myBatis2 (0) | 2024.02.16 |
@Reponsebody ,mybatis (0) | 2024.02.16 |