본문 바로가기
spring

spring 등록 출력(복습)

by improve 2024. 2. 27.


spring
Main -> MemberService -> Member DAO

spring boot
MemberController -> MemberService -> MemberRepository

 

순서는 이렇게 만든다.

fackage 를 이렇게 만들어준다 

 

●MyConf

package org.example.Conf;

import org.example.component.AABBService;
import org.example.member.MemberDao;
import org.example.member.MemberService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;

@Configuration
public class MyConf {

    @Bean
    @Qualifier("memberservice1")
    public org.example.user.MemberService memberService1(){
        return new org.example.user.MemberService();
    }


    @Bean
    public MemberDao memberDao() {
        return new MemberDao();
    }

    @Bean
    @Qualifier("memberservice2")
    public org.example.member.MemberService memberService2() {
        return new MemberService();
    }

    @Bean
    public AABBService aabbService() {
        return new AABBService();
    }
}

 

객체 생성을 bean으로 생성 한다.

만약 파일 명이 동일하면 qualifier 을 이용한다 .

 

객체 생성을 bean으로 아니라 ComponentScan을 이용해서 한다.

 

 

ComponentScan ({안에는 파일명을 적어줘야 한다.})

 

객체 생성할 할 메소드에 Component 를 적어준다 .

 

 

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>6.1.4</version>
</dependency>

 

ComponentScan을 사용하기 위해선 자바 17버전에서 스프링프라임워크의 버전이 6.1.4 버전이여야 한다.

 

●Main

package org.example;

import org.example.Conf.MyConf;
import org.example.member.Member;
import org.example.member.MemberService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.example.member.Member;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {


        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConf.class);

//        String str[] = context.getBeanDefinitionNames();
//        Arrays.stream(str).forEach(s -> System.out.println(s));


        Member member1 = Member.builder()
                .email("aaa@naver.com")
                .name("홍길동")
                .password("1234")
                .localDate(LocalDate.now())
                .build();

        Member member2 = Member.builder()
                .email("bbb@naver.com")
                .name("박길동")
                .password("5678")
                .localDate(LocalDate.now())
                .build();


        MemberService ms = context.getBean(MemberService.class);
        ms.regist(member1);
        ms.regist(member2);

        ms.list();









        context.close();



    }
}

 

 

 

 

●Member

package org.example.member;


import lombok.*;

import java.time.LocalDate;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Builder
public class Member {

    private long id;
    private String email;
    private String name;
    private String password;
    private LocalDate localDate;

}

 

●MemberDao

package org.example.member;

import org.springframework.stereotype.Component;

import java.util.Collection;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

@Component
public class MemberDao {

    private Map<String,Member> map = new HashMap<>();

    public static Long id =0L;



    public void insert(Member member){
        member.setId(++id);
        map.put(member.getEmail(), member);
    }
    public Collection<Member> select(){
        return map.values();
    }

}

 

Map을 써서 map에 값을 넣는다.(insert)

map.values를 써서 등록된 값을 읽어 온다(select)

 

 

●MemberService

package org.example.member;


import lombok.ToString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.util.Collection;

@Component
public class MemberService {


    @Autowired
    MemberDao memberDao;

    // member 객체 등록
    public void regist(Member member){
    memberDao.insert(member);
    }

    //member 객체 출력
    public void list(){
       Collection<Member> collection = memberDao.select();
       collection.stream().forEach(System.out::println);
    }


}

 

regist에 dao.insert를 호출한다.

list에 dao.select를 호출하고 

map.values를 collection으로 출력한다.

 

'spring' 카테고리의 다른 글

SPRING HATEOAS/Security == Intercepter  (0) 2024.03.15
맥북에서 DBeaver spring 으로 연결  (0) 2024.03.01
spring pom.xml  (0) 2024.02.28
spring 으로 게시판  (0) 2024.02.23
Spring 기초  (0) 2024.02.22