대머리개발자

[코틀린] 더욱 코틀린스럽게(apply, also) 본문

개발이야기/코틀린

[코틀린] 더욱 코틀린스럽게(apply, also)

대머리개발자 2023. 9. 7. 13:49
728x90
    @Bean("jasyptStringEncryptor")
    fun stringEncryptor(): StringEncryptor {
        val encryptor = PooledPBEStringEncryptor()
        val config = SimpleStringPBEConfig()
        config.setPoolSize("1")
        config.password = password
        config.stringOutputType = "base64"
        config.setKeyObtentionIterations("1000")
        config.provider = BouncyCastleProvider()
        config.algorithm = "PBEWithSHA256And128BitAES-CBC-BC"
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator")
        encryptor.setConfig(config)
        return encryptor
    }

>>> 스럽게!!

    @Bean("jasyptStringEncryptor")
    fun stringEncryptor() =
        PooledPBEStringEncryptor()
            .apply {
                setConfig( SimpleStringPBEConfig().also {
                    it.poolSize = 1
                    it.password = password
                    it.stringOutputType = "base64"
                    it.keyObtentionIterations = 1000
                    it.provider = BouncyCastleProvider()
                    it.algorithm = "PBEWithSHA256And128BitAES-CBC-BC"
                    it.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator")
                })
            }

코틀린에서 사용되는  apply와 also에 대한 이해도를 몇 가지 테스트 진행했는데;

this로 바인딩 할지 혹은 it으로 바인딩 할지에 대한 차이 밖에 없는 것 같다.

 

apply{ ... }를 사용하던  also { ... } 사용하던  둘다  OK!!

 

기본적인 설명으로는

apply : 속성 값들 초기화

also : 로깅이나 벨리데이션

 

실상 의미 없는 구분 값다!..굳이 쓰자면 apply로.. it. 쓰기도 귀찮자나낭

 

 

 

728x90

'개발이야기 > 코틀린' 카테고리의 다른 글

enum class 굳잡!  (0) 2023.10.25
코틀린 Jpa 영속성...  (0) 2023.10.23
[코틀린] 스프링 배치(2) - 적용  (0) 2023.09.04
[코틀린] 스프링 배치(1) - 사전 주저리  (0) 2023.09.01
[코틀린] queryDSL  (1) 2023.06.13