inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

region.key 와 region.value 가 어디서 나오는 것인가요? 그리고 region 의 타입은 무엇이 되는건가요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. @ModelAttribute("regions") public Map<String, String> regions() { Map<String, String> regions = new LinkedHashMap<>(); regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JEJU", "제주"); return regions; } <div> <div>등록 지역</div> <div th:each="region : ${regions}" class="form-check form-check-inline"> <input type="checkbox" th:field="${item.regions}" th:value="${region.key}" class="form-check-input" disabled> <label th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">서울</label> </div> </div> 여기에서 th:each="region : ${regions}" th:value="${region.key}" th:text="${region.value}" 너무 어려워서 체크박스만 어제 오늘 계속 붙들고 다시보고 있는데요 이제 저 3개만 알면 이해갈거같은데 전력을 다해 검색해봐도 도저히 저 3개를 모르겠어요 each 에 ${regions} 는 맵인거 같은데 region 은 무슨타입이 들어가길래 key value 라는 값을 쓸수 있는건가요?

  • mvc
  • spring
  • MVC
댓글 1 좋아요 2 조회수 397

회원 도메인과 리포지토리 만들기 강의를 듣는중인데요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

따라치기에 바쁘고 코드를 적으시는데 이해못하면 잘못 듣고있는건가요? 자바 강의는 다 들었는데 뭘하시는지를 모르겠고 따라적기만 하고있습니다..

  • spring
  • mvc
  • spring-boot
  • java
  • MVC
송민석 댓글 1 좋아요 0 조회수 288

HikariDataSource가 존재하지 않는 이슈가 있습니다.

미해결

토비의 스프링 부트 - 이해와 원리

토비님이랑 같은 의존성 주입 받았는데 전 HikariDataSource라는 class가 존재하지 않습니다. 제가 잘못한게 있을까요

  • spring-boot
  • spring
  • spring-jdbc
  • spring-jdbc
GOLF 댓글 5 좋아요 1 조회수 2218

jpa를 사용중에 jdbcTemplate을 권장하는 이유가 궁금합니다

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

@Query(native = true)로 하게되면은 JdbcTemplate과 비슷한 효과를 가지면서 정적 쿼리를 수행할수있잖아요 그런대 jdbTemplate을 별도로 사용하는건 어떤 이유 인지 궁금합니다. @Query를 이용한 네이티브 쿼리에서 할수 없는 특별한 기능이 있다면 그게 무엇 때문인지 궁금하네요.

  • spring
호두 댓글 1 좋아요 0 조회수 685

JmxAutoConfiguration가 Nagative matches 리스트에있습니다

해결됨

토비의 스프링 부트 - 이해와 원리

이니셜라이저는 다음처럼 구성했고 인텔리제이 커뮤니티 에디션을 사용해서 프로젝트를 열고 -Ddebug 를 주고 실행했을 때 콘솔 결과는 다음과 같습니다. 오전 8:52:26: Executing ':SpringbootAcApplication.main()'... > Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :SpringbootAcApplication.main() . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.8) 2023-02-05 08:52:27.975 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : Starting SpringbootAcApplication using Java 11.0.18 on DESKTOP-010ET15 with PID 28856 (G:\Workspace_2023\Server\springboot-ac\build\classes\java\main started by doseon in G:\Workspace_2023\Server\springboot-ac) 2023-02-05 08:52:27.978 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : No active profile set, falling back to 1 default profile: "default" 2023-02-05 08:52:27.978 DEBUG 28856 --- [ main] o.s.boot.SpringApplication : Loading source class com.example.springbootac.SpringbootAcApplication 2023-02-05 08:52:28.628 DEBUG 28856 --- [ main] ConditionEvaluationReportLoggingListener : ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAutoConfiguration.ClassProxyingConfiguration matched: - @ConditionalOnMissingClass did not find unwanted class 'org.aspectj.weaver.Advice' (OnClassCondition) - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) GenericCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition) LifecycleAutoConfiguration#defaultLifecycleProcessor matched: - @ConditionalOnMissingBean (names: lifecycleProcessor; SearchStrategy: current) did not find any beans (OnBeanCondition) NoOpCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition) PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched: - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition) SimpleCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition) SqlInitializationAutoConfiguration matched: - @ConditionalOnProperty (spring.sql.init.enabled) matched (OnPropertyCondition) - NoneNestedConditions 0 matched 1 did not; NestedCondition on SqlInitializationAutoConfiguration.SqlInitializationModeCondition.ModeIsNever @ConditionalOnProperty (spring.sql.init.mode=never) did not find property 'mode' (SqlInitializationAutoConfiguration.SqlInitializationModeCondition) TaskExecutionAutoConfiguration matched: - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' (OnClassCondition) TaskExecutionAutoConfiguration#applicationTaskExecutor matched: - @ConditionalOnMissingBean (types: java.util.concurrent.Executor; SearchStrategy: all) did not find any beans (OnBeanCondition) TaskExecutionAutoConfiguration#taskExecutorBuilder matched: - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) TaskSchedulingAutoConfiguration matched: - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition) TaskSchedulingAutoConfiguration#taskSchedulerBuilder matched: - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) Negative matches: ----------------- ActiveMQAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.aspectj.weaver.Advice' (OnClassCondition) ArtemisAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition) BatchAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.batch.core.launch.JobLauncher' (OnClassCondition) Cache2kCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.cache2k.Cache2kBuilder' (OnClassCondition) CacheAutoConfiguration: Did not match: - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition) Matched: - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition) CacheAutoConfiguration.CacheManagerEntityManagerFactoryDependsOnPostProcessor: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition) - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) CaffeineCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.github.benmanes.caffeine.cache.Caffeine' (OnClassCondition) CassandraAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.cassandra.ReactiveSession' (OnClassCondition) CassandraRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) ClientHttpConnectorAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) CodecsAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.codec.CodecConfigurer' (OnClassCondition) CouchbaseAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) CouchbaseReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) DataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) DataSourceInitializationConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.init.DatabasePopulator' (OnClassCondition) DataSourceTransactionManagerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition) DispatcherServletAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) EhCacheCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'net.sf.ehcache.Cache' (OnClassCondition) ElasticsearchDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate' (OnClassCondition) ElasticsearchRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition) ElasticsearchRestClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClientBuilder' (OnClassCondition) EmbeddedLdapAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition) EmbeddedMongoAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.MongoClientSettings' (OnClassCondition) EmbeddedWebServerFactoryCustomizerAutoConfiguration: Did not match: - @ConditionalOnWebApplication did not find reactive or servlet web application classes (OnWebApplicationCondition) ErrorMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) ErrorWebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) FlywayAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition) FreeMarkerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'freemarker.template.Configuration' (OnClassCondition) GraphQlAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlQueryByExampleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlQuerydslAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlRSocketAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlReactiveQueryByExampleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlReactiveQuerydslAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebFluxSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebMvcSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GroovyTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition) GsonAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition) H2ConsoleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition) HazelcastAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HazelcastCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HazelcastJpaDependencyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HibernateJpaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.persistence.EntityManager' (OnClassCondition) HttpEncodingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.filter.CharacterEncodingFilter' (OnClassCondition) HttpHandlerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.server.reactive.HttpHandler' (OnClassCondition) HttpMessageConvertersAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.converter.HttpMessageConverter' (OnClassCondition) HypermediaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.hateoas.EntityModel' (OnClassCondition) InfinispanCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager' (OnClassCondition) InfluxDbAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.influxdb.InfluxDB' (OnClassCondition) IntegrationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition) JCacheCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.cache.Caching' (OnClassCondition) JacksonAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition) JdbcRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration' (OnClassCondition) JdbcTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition) JerseyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.ServletRegistration' (OnClassCondition) JmsAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.Message' (OnClassCondition) JmxAutoConfiguration: Did not match: - @ConditionalOnProperty (spring.jmx.enabled=true) did not find property 'enabled' (OnPropertyCondition) Matched: - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter' (OnClassCondition) JndiConnectionFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition) JndiDataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) JooqAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition) JpaRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition) JsonbAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition) JtaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition) KafkaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition) LdapAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition) LdapRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition) LiquibaseAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition) MailSenderAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.activation.MimeType' (OnClassCondition) MailSenderValidatorAutoConfiguration: Did not match: - @ConditionalOnSingleCandidate did not find required type 'org.springframework.mail.javamail.JavaMailSenderImpl' (OnBeanCondition) MessageSourceAutoConfiguration: Did not match: - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition) MongoAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MongoDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MongoReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MultipartAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.MultipartConfigElement' (OnClassCondition) MustacheAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition) Neo4jAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) NettyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.netty.util.NettyRuntime' (OnClassCondition) OAuth2ClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition) OAuth2ResourceServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken' (OnClassCondition) PersistenceExceptionTranslationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition) ProjectInfoAutoConfiguration#buildProperties: Did not match: - @ConditionalOnResource did not find resource '${spring.info.build.location:classpath:META-INF/build-info.properties}' (OnResourceCondition) ProjectInfoAutoConfiguration#gitProperties: Did not match: - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition) QuartzAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition) R2dbcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) R2dbcDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.r2dbc.core.R2dbcEntityTemplate' (OnClassCondition) R2dbcInitializationConfiguration: Did not match: - @ConditionalOnClass did not find required classes 'io.r2dbc.spi.ConnectionFactory', 'org.springframework.r2dbc.connection.init.DatabasePopulator' (OnClassCondition) R2dbcRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) R2dbcTransactionManagerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.r2dbc.connection.R2dbcTransactionManager' (OnClassCondition) RSocketGraphQlClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) RSocketMessagingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) RSocketRequesterAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) RSocketSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.rsocket.core.SecuritySocketAcceptorInterceptor' (OnClassCondition) RSocketServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.core.RSocketServer' (OnClassCondition) RSocketStrategiesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.netty.buffer.PooledByteBufAllocator' (OnClassCondition) RabbitAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.rabbitmq.client.Channel' (OnClassCondition) ReactiveElasticsearchRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient' (OnClassCondition) ReactiveElasticsearchRestClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.netty.http.client.HttpClient' (OnClassCondition) ReactiveMultipartAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.codec.multipart.DefaultPartHttpMessageReader' (OnClassCondition) ReactiveOAuth2ClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) ReactiveOAuth2ResourceServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity' (OnClassCondition) ReactiveSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) ReactiveUserDetailsServiceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition) ReactiveWebServerFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.ReactiveHttpInputMessage' (OnClassCondition) RedisAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition) RedisCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition) RedisReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) RedisRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition) RepositoryRestMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition) RestTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.client.RestTemplate' (OnClassCondition) Saml2RelyingPartyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository' (OnClassCondition) SecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition) SecurityFilterAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition) SendGridAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition) ServletWebServerFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.ServletRequest' (OnClassCondition) SessionAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition) SolrAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition) SpringApplicationAdminJmxAutoConfiguration: Did not match: - @ConditionalOnProperty (spring.application.admin.enabled=true) did not find property 'enabled' (OnPropertyCondition) SpringDataWebAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition) TaskSchedulingAutoConfiguration#scheduledBeanLazyInitializationExcludeFilter: Did not match: - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) TaskSchedulingAutoConfiguration#taskScheduler: Did not match: - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) ThymeleafAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.thymeleaf.spring5.SpringTemplateEngine' (OnClassCondition) TransactionAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition) UserDetailsServiceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition) ValidationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.validation.executable.ExecutableValidator' (OnClassCondition) WebClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) WebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) WebMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) WebServiceTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.oxm.Marshaller' (OnClassCondition) WebServicesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition) WebSessionIdResolverAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Mono' (OnClassCondition) WebSocketMessagingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition) WebSocketReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) WebSocketServletAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) XADataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager' (OnClassCondition) Exclusions: ----------- None Unconditional classes: ---------------------- org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration 2023-02-05 08:52:28.659 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : Started SpringbootAcApplication in 1.188 seconds (JVM running for 1.655) 2023-02-05 08:52:28.666 DEBUG 28856 --- [ main] o.s.b.a.ApplicationAvailabilityBean : Application availability state LivenessState changed to CORRECT 2023-02-05 08:52:28.670 DEBUG 28856 --- [ main] o.s.b.a.ApplicationAvailabilityBean : Application availability state ReadinessState changed to ACCEPTING_TRAFFIC Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 2s 3 actionable tasks: 1 executed, 2 up-to-date 오전 8:52:28: Execution finished ':SpringbootAcApplication.main()'.

  • spring-boot
  • spring
  • spring-jdbc
  • spring-jdbc
단짠커피 댓글 2 좋아요 0 조회수 1933

커피 메뉴 등록시 조회 되는 현상

미해결

스프링 부트 웹 개발 입문 - 따라하며 배우기

안녕하세요. 수강생입니다. 다름이 아니라 메뉴 등록시 조회가 되고 어쩔 땐 등록페이지로 갑니다. http://localhost:8080/menu?start_date=&end_date=&name=&kind=ALL 원인을 못찾겠어서 문의드립니다. 감사합니다.

  • mvc
  • MVC
  • spring
  • spring-boot
injaekim97 댓글 2 좋아요 0 조회수 440

source release 17 requires target release 17

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

해당 에러를 고치기 위해 세팅의 자바 컴파일러 버전을 11로 바꾸었는데 이렇게 진행하여도 괜찮은가요??

  • spring-boot
  • mvc
  • MVC
  • spring
  • java
정현주 댓글 1 좋아요 0 조회수 560

webapp 의문점 질문드립니다

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

강의를듣다가 2분쯤에 궁금한게 생겨서 질문드립니다. jsp파일은 왜 main이 아닌 webapp밑에다가 만드는건가요? 정적자료이기 때문에 java가 아닌 webapp 밑에다가 만들어야하는건가요? 그리고 추가적으로 main이 아닌 webapp디렉토리가 하는 역할이 무엇인가요? webapp의 정의가 무엇인가요? 정적 자료(ex. html, jsp)들을 모아둔 폴더라고 봐도될까요? 네이밍은 무조건 webapp으로 해줘야 동작하는걸까요? webapp말고 다른 이름으로 했더니 webapp디렉토리에는 있던 파란색 동그라미가 노출되지않더라구요... webapp이 정정자료들을 모아둔 폴더라고 한다면, 회원목록jsp파일은 동적파일인데 왜 webapp의 하위에다가 생성한건가요? 정적 동적 상관없이 단순히 jsp파일이라서 그런건가요?

  • mvc
  • spring
  • MVC
오리쉐리 댓글 1 좋아요 2 조회수 1225

회원가입 빈 검증에서 메시지가 한꺼번에 다 나옵니다

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

회원가입 기능을 만들고 있습니다. 빈 검증 어노테이션을 적용해서 해보고 있지만 아래 처럼 검증 메시지가 1개가 아니라 전부 한꺼번에 나오고 있습니다. 한번에 하나의 메시지를 출력하고 싶습니다. 왜 그럴까요... 검증 순서나 우선순위 같은 것을 할 수 있을까요? 에러메시지 설정입니다 #1순위 : 회원등록 메시지 NotBlank.memberReg.nickname=닉네임은 입력하세요 Length.memberReg.nickname=닉네임은 1 - 20자 글자입니다 NotBlank.memberReg.email=이메일을 입력하세요 Email.memberReg.email=이메일 형식에 맞지 않습니다 Length.memberReg.email=이메일 길이는 100글자 입니다 NotBlank.memberReg.password=비밀번호를 입력하세요 Pattern.memberReg.password=비밀번호 형식에 맞지 않습니다 Length.memberReg.password=영문 대소문자 숫자 특수기호 포함 6-19자리 #1순위 : 로그인 메시지 NotBlank.memberLogin.email=이메일은 필수입니다 Email.memberLogin.email=이메일 형식에 맞지 않습니다 Length.memberLogin.email=이메일 길이는 100글자 입니다 NotBlank.memberLogin.password=비밀번호를 입력하세요 Pattern.memberLogin.password=비밀번호 형식에 맞지 않습니다 Length.memberLogin.password=영문 대소문자 숫자 특수기호 포함 6-19자리 아래는 회원DTO 어노테이션 붙인 부분입니다. @NotBlank @Length(min=1, max=20) private String nickname; @NotBlank @Email(regexp="^[0-9a-zA-Z]([-_\\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\\.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$") @Length(min=5,max=100) private String email; @NotBlank @Length(min=6,max=19) private String password;

  • mvc
  • MVC
  • spring
스틸레인 댓글 1 좋아요 0 조회수 561

1:18에서 되는 기능 저도 얼티메이트인데 왜 안 될까요?

해결됨

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 1분 18초 부분을 봐주세요 안녕하세요. 저도 학생용 라이센스로 얼티메이트(엔터프라이즈) 버전으로 인텔리제이 사용하고 있습니다. 그런데 " "부분에서는 절대 자동완성이 안 나오더라구요. 그래서 혹시 영한님이 착각하시고 플러그인을 얼티메이트 버전이라고 하신 건지 여쭤보고 싶습니다. 혹시 플러그인이라면 그 플러그인이 어떤 것인지 알려주시면 정말 감사드리겠습니다 💪🏻

  • 인텔리제이
  • spring
  • oop
Sully 댓글 1 좋아요 0 조회수 452

스프링부트 버전, 자바 버전

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링부트 버전이 현재 2버전은 2.7.8밖에 없는데 자바11로 다운 받았으니 3버전 안하고 2.7.8로 하고 나머진 강의 그대로 해도 될까요?? 현재 화면입니다. 이렇게 설정해도 문제없는지 질문드립니다. 자주하는 질문에 보니 스프링부트 3버전부터는 Java17이상을 다운받아야한다고 나와있는데, 원래 Java19가 있는데 지웠다 11로 다시 설치한 상태라 컴퓨터에 Java여러 버전이 제대로 지워지지 않으면 오류가 날까봐 있는 버전으로 가능할지 질문드립니다.

  • spring
  • java
  • mvc
  • spring-boot
  • MVC
jm01 댓글 2 좋아요 4 조회수 2911

프로퍼티 빈의 후처리기 도입 강의 질문입니다

미해결

토비의 스프링 부트 - 이해와 원리

13:48 ~ 13:53 강의 중에 @EnableMyConfigurationProperties( ServerProperties.class ) @EnableMyConfigurationProperties 에 엘리먼트 정의를 안해주셨다고 설명해 주신 뒤 Class<?> 만 치고 강의가 넘어가는 현상이 있습니다.

  • spring-boot
  • spring
  • spring-jdbc
  • spring-jdbc
우가우가 댓글 3 좋아요 1 조회수 1042

Bean으로 등록하지 않고, Servlet의 Filter를 사용하는 방법은 무엇인가요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 영상을 보면 Filter를 사용하기 위해 아래와 같이 스프링 컨테이너에 Bean 등록하는 것을 볼 수 있습니다. @Bean public FilterRegistrationBean logFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); filterRegistrationBean.setFilter(new LogFilter()); filterRegistrationBean.setOrder(1); filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } 근데 사실 의문인 부분이 있습니다. Filter는 Servlet 기술이기 때문에, Spring이 없어도 동작할 수 있어야 합니다. 그래서 검색을 해봤죠. 보통 Servlet의 필터는 어떻게 사용하는지 아래와 같이 web.xml 에 등록해서 사용하더군요. <filter> <filter-name>filter1</filter-name> <filter-class>com.app.GFGFilter</filter-class> </filter> <filter-mapping> <filter-name>filter1</filter-name> <url-pattern>/GFGServlet</url-pattern> </filter-mapping> xml을 사용하는 것 보니까 Maven을 사용할 때 방식인 것 같은데요. Gradle을 사용할 때는 어떻게 설정해줘야 Filter를 사용할 수 있죠? Bean으로 등록하지 않고 사용하는 방법이 궁금합니다.

  • spring
  • mvc
  • servlet
  • MVC
  • filter
bascat 댓글 1 좋아요 0 조회수 493

DB격리레벨 강의자료중 궁금한점이 있습니다.

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

이부분 따로 언급을 안해주셨는대요. DB 격리가 READ COMM이어도 스프링 JPA어플리케이션을 쓰면은 Repateable Read가 보장이된다는 이야기인가요? 그말은 즉 JPA를 쓰면 굳이 DB 격리레벨이 Repeate하는것보다 Read Commit으로 낮춰놓고 쓰는게 더 성능상 좋은거네요? 이해한게 맞느니 확인부탁드립니다.

  • spring
호두 댓글 1 좋아요 0 조회수 630

안녕하세요

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 헷갈리는 부분이 있어 질문드립니다. em.persist(member) 를 하게 되면 DB에 저장이 바로 되는건지, 영속성 컨텍스트에만 저장이 되는건지 궁금합니다. 그리고 DB 연결이 안되어 있는 상황에서 em.persist(member) 를 하게 된다면 어디에 저장이 되는 건지도 헷갈립니다.

  • java
  • spring-boot
  • 웹앱
  • 웹앱
  • spring
  • jpa
  • JPA
작성자 댓글 1 좋아요 0 조회수 547

프로퍼티 관련하여 질문있습니다!

해결됨

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

HelloData 클래스에 @Data 애노테이션은 빼고, 모든 필드를 매개변수로 받는 생성자만 추가하여도 바인딩이 잘 되는 것을 확인했습니다. setter가 없어도 바인딩이 되는 것은 스프링이 내부에서 더 섬세하기 처리하기 때문에 바인딩이 되는 것인가요??

  • mvc
  • MVC
  • spring
지찬우 댓글 1 좋아요 0 조회수 383

Context 오브젝트에서 클래스로더를 가져온 것과 현재 오브젝트에서 클래스 로더를 가져왔을 때 어떤 차이가 있나요?

해결됨

토비의 스프링 부트 - 이해와 원리

안녕하세요. 강의 너무 재미있게 잘 듣고 있습니다. 강의 듣다가 클래스 로더를 가져오는 부분에서 의문점이 있는데요(사실 이전부터 개념이 명확하지 않아 어려움이 있었습니다) MyOnClassCondition 만들면서 context.getClassLoader() 이렇게 클래스 로더를 가져왔는데 이렇게 가져오는 것과 this.getClass().getClassLoader() 이렇게 가져오는 것이 어떠한 차이가 있는지 궁금합니다. 둘다 동작은 잘 되거든요. 스프링 부트와 크게 관련된건 아니라고 생각들지만 인터넷 글을 봐도 명확하게 이해가 잘 안되서 초고수 토비님께 문의드립니다. 명강의 감사합니다.!!

  • spring-jdbc
  • spring-boot
  • spring-jdbc
  • spring
cothe 댓글 1 좋아요 4 조회수 566

스프링 처음 배우는데..

해결됨

토비의 스프링 부트 - 이해와 원리

우선 저는 스프링의 스 자도 모르는 상태에서, 토비님의 네임드만 보고 생각없이 후딱 구매해버렸습니다..! 스프링부트를 듣는데 스프링 레거시, jsp, 서블릿 관련 자세한 지식 없이 강의 교안대로 가면 문제 없나요?

  • spring-jdbc
  • spring-jdbc
  • spring-boot
  • spring
푸린 댓글 1 좋아요 1 조회수 577

프록시 객체는 싱글톤인가요?

해결됨

스프링 핵심 원리 - 기본편

다른 분들의 질문을 읽어보던중에, 같은 질문에 다른 답변이 달려있는게 있어서 여쭤봅니다. "프록시 객체는 각 HTTP 요청마다 생성되는가?" 라는 질문에 https://www.inflearn.com/questions/618437 는 '각 요청마다 생성된다' 라고 답해져있고 https://www.inflearn.com/questions/348888 는 '프록시 객체는 한번만 생성된다'(맨밑에 있습니다) 라고 답해져있는데, 뭐가 맞는건가요? 그리고, 강의 교안 <9.빈 스코프>의 마지막 페이지(32페이지)에 보면 '마치 싱글톤을 사용하는 것 같지만 다르게 동작하기 때문에 결국에 주의해서 사용해야한다.' 라는 말이 있는데요. 이 말에 대해서 좀 더 설명을 해주셨으면 좋겠습니다. 만약 프록시 객체가 한번만 생성된다면, 그게 싱글톤으로 등록된 것이나 마찬가지인데, 왜 "싱글톤을 사용하는 것 같지만 다르게 동작"하는지 잘 모르겠습니다.

  • 객체지향
  • oop
  • spring
세승 댓글 1 좋아요 1 조회수 853

@Configuration과 @ComponentScan의 충돌

미해결

스프링 핵심 원리 - 기본편

안녕하세요. @ComponentScan을 공부하다가 궁금한게 생겨서 질문드립니다. @ComponentScan에 의해서 @Configuration 이 붙은 클래스를 스캔했을 때, 이 때 만들어진 스프링 빈도 팩토리 빈의 역할을 하게 되나요? 예를 들어, AppConfig 라는 클래스에 @Configuration을 붙이고 내부에 @Bean을 이용해 등록할 빈들을 만들어놓는다. AutoAppConfig 라는 클래스에 @ComponentScan을 붙이고 스프링 컨테이너(ApplicationContext)에 AutoAppConfig.class 로 설정정보를 넘겨준다. 위와 같이 했을 때, AutoConfig가 스프링 빈으로 등록되고 @ComponentScan에 의해 스캔이 시작되어, AutoAppConfig가 위치한 패키지부터 하위 패키지까지 스캔되어 스프링 빈이 등록 될 것입니다. (AppConfig는 패키지 내부에 속해있어 스캔된다고 가정하겠습니다.) 그럼 이 경우에 exclude 필터로 @Configuration에 해당하는 클래스를 제외하지 않는다면, AppConfig도 스프링 빈으로 등록될텐데, 스프링 컨테이너(ApplicationContext)에 직접적으로 AppConfig.class와 같은 설정 정보를 전달하지 않았는데, 이때도 AppConfig가 팩토리 빈이 되어, 위의 1번에서 @Bean으로 만들어놓은 빈들을 스프링 컨테이너가 등록하게 되는지 궁금합니다.

  • 객체지향
  • spring
  • oop
세승 댓글 2 좋아요 0 조회수 738

인기 태그

인프런 TOP Writers

주간 인기글