월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 부트 개념과 활용
curl 명령어
인텔리제이 터미널에 curl -I --http2 http://localhost:8080 입력해도 'curl: (1) Unsupported protocol' 이라고만 뜨는데 다른 방법 없을까요? 여기서 막혀서 뒷부분 진행이 안돼요ㅠㅠ
- 미해결스프링 부트 개념과 활용
Admin 항목이 없습니다.
jconsole에서 실행한 Application으로 접속해서 MBeans에 org.springframework.boot를 들어가봤는데 Endpoint만 있고 Admin이 없네요...
- 미해결스프링 부트 개념과 활용
의존성 관리 질문입니다.
HttpClient 의존성 추가할 때 IntelliJ에서는 SpringBoot가 의존성 관리를 해주고 있다는 것을 왼쪽 아이콘을 통해서 확인할 수 있는데 다른 IDE에서는 어떻게 확인할 수 있을까요? 현재 저는 VSCode로 해보고 있는데 아무리 찾아도 방법이 없는 것 같네요... ...\.m2\repository\org\springframework\boot\spring-boot-dependencies\2.0.3.RELEASE\spring-boot-dependencies-2.0.3.RELEASE.pom.xml을 직접 찾아서 확인하는 수 밖에 없는 걸까요..?
- 미해결스프링 부트 개념과 활용
Resource -> EntityModel 로 변경되었습니다.
현재 스프링 부트 공식 페이지 보고 알았네요. 따라하시는 분들, 아마 Resource 임포트 안되실 겁니다. 강의 이후에 공식 클래스 이름이 바뀌었나보네요. 도큐먼트에 다음과 같이 나와있습니다. 참고하세요. ResourceSupport is now RepresentationModel Resource is now EntityModel Resources is now CollectionModel PagedResources is now PagedModel 마찬가지로 linkTo 임포트 안되시는 분들은 임포트 부분을 다음으로 바꿔보세요 ㅎㅎ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
- 미해결스프링 부트 개념과 활용
No property userName found for type Account! Did you mean 'username'? 에러 건
안녕하세요. 조금씩 따라가면서 하고 있긴 한데, 잘 모르겠어서 질문 드립니다. 본 강의는 이전 강의의 Postgres 'Account' 테이블을 참고해서 진행하는건가요? 이전 강의에서 String sql = "CREATE TABLE ACCOUNT(ID INTEGER NOT NULL, username VARCHAR(255), password VARCHAR(255), PRIMARY KEY (id))"; jdbcTemplate.execute("INSERT INTO ACCOUNT VALUES (1, 'keesun', 'pass')"); 이전 강의와 다르게 ACCOUNT 테이블에 username과 password를 추가한 테이블로 만들 고 데이터를 한 건 insert 하였습니다. 본 강의에서 AccountRepository에 id, username, password를 만들었는데 Table에서 생성한 column 과 일치시켜줘야 하는건가요? 저는 아래와 같은 에러가 발생하는데, 이유를 잘 모르겠습니다. Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract me.whiteship.springbootjpa.account.Account me.whiteship.springbootjpa.account.AccountRepository.findByUserName(java.lang.String)! No property userName found for type Account! Did you mean 'username'?
- 미해결스프링 부트 개념과 활용
마지막 예제 질문입니다.
저는 지금 스프링 부트 2.2.4 버전으로 실습하고 있는데요 마지막 예제에서 Application에 등록한 빈이 출력됩니다. 버전업 되면서 빈을 읽는 단계가 바뀌었나요?
- 미해결스프링 부트 개념과 활용
음.. 저는 오류가 뜨네요
Application에 holoman을 빈 등록 후에 메인을 돌려보면 선생님은 name과 howLong이 변하지 않고 그대로 나오지만 저는 아래와 같은 오류가 납니다. @ConditionalOnMissingBean을 취하면 정상적으로 동작하긴 하는데, 저 어노테이션이 없을 때, 선생님과 다르게 나오는 이유가 뭘까요? Description: The bean 'holoman', defined in class path resource [me/whiteship/HolomanConfiguration.class], could not be registered. A bean with that name has already been defined in me.whiteship.Application and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
- 해결됨스프링 부트 개념과 활용
test 실행시 org.springframework.http.converter.HttpMessageNotWritableException 500 에러 발생합니다.
package com.devyu.webmvc; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @RunWith(SpringRunner.class) @WebMvcTest(UserController.class) public class UserControllerTest { @Autowired MockMvc mockMvc; @Test public void hello() throws Exception { mockMvc.perform(get("/hello")) .andExpect(status().isOk()) .andExpect(content().string("안녕")); } @Test public void createUser() throws Exception { String userJson="{\"userName\":\"devyu\", \"userPassword\":\"min\"}"; mockMvc.perform(post("/create/user") .contentType(MediaType.APPLICATION_JSON_UTF8) .accept(MediaType.APPLICATION_JSON_UTF8) .content(userJson)) .andExpect(status().isOk()) .andExpect(jsonPath("$.username",is(equalTo("devyu")))) .andExpect(jsonPath("$.password",is(equalTo("min")))); } } 우선 controller단에 요청하고 @RequestBody와 HttpMessageConverter를 통해 객체에 json값을 주입해주는것 까지는 정상작동 합니다.(해당 controller단에서 user객체를 print() 해보았습니다.) 문제는 객체를 return 해주면 org.springframework.http.converter.HttpMessageNotWritableException 500 에러 발생합니다. 원인이 무엇일까요???
- 미해결스프링 부트 개념과 활용
여기서 view를 못찾는데 질문드립니다
view를 못찾는데 질문드립니다 ㅠㅠ pom,xml도 잘설정했는데 그냥 RestController 로 해야만 일단 컨트롤러타고 ㅠㅠ 그다음에 못탑니다 ㅠㅠ
- 미해결스프링 부트 개념과 활용
parent
안녕하세요 초급개발자 질문입니다 ! parent가 버전관리를 해주는데 gradle의 경우에는parent를 가져오지 않는데 누가 버전관리를해줄까요?
- 미해결스프링 부트 개념과 활용
안녕하세요 잠시 질문드려도될가요
Show Dependencies 창 띄우는게 인텔리j에서는 가능한데 Eclipse 에서는 띄우지 못하나요? ㅠㅠ 어디서 확인해야하나욥 ?!
- 해결됨스프링 부트 개념과 활용
Service와 Repository의 관계에 대한 질문입니다!
좋은 강의 정말 감사합니다. 스프링 학습에 있어 너무 좋은 기회가 되었습니다. 강의를 듣고 예제 연습을 할때는 대부분 1개의 Service는 1개의 Repository와 연동? 매핑? 되어있습니다! 질문을 요약하자면 1. 1개의 Request의 기능에서 2개 이상의 DTO에 대한 query를 실행해야 할때 - 현재 제가 작성한 코드에는 1개의 Service 객체에서 2개의 Repository를 @Autowired하여 사용하고 있습니다. 지금 사용하고 있는 방법이 올바른지(보안, 효율성 측면) 궁금합니다. - 제가 추가적으로 생각한 방법은 2개 이상의 DTO를 사용하려고 추가적인 Repository를 사용하니 Request를 받을 때 Body에서 2개 이상의 DTO를 묶어주는 객체를 받아오고 Controller에서 묶음으로 받은 객체를 사용할 각각의 DTO로 묶음해제하여 Controller객체에서 각 DTO 객체에 맞는 Service 메소드를 실행하는 방법인데 이방법이 맞는지 궁금합니다. - 만약 위 2개의 방법이 올바르지 않다면 어떤 방법으로 하면 효율적인지 궁금합니다. 2. 1개의 Service객체를 이용하여 Service를 처리하는데 다른 Service 객체를 사용해야 하는 경우, 다른 Service 객체를 @Autowired하여 사용하는 것이 효율적인지 궁금합니다. 질문이 너무 길고 장황하여 죄송합니다. 질문에 답변을 해주시면 정말 감사하겠습니다. 혹시 해당 질문에 대한 관련 사이트를 알려주시면 참고하여 찾아보겠습니다. 감사합니다.
- 미해결스프링 부트 개념과 활용
test 파일을 실행시켰는데 이러한 type error가 왜 뜨는건가요?
package econovation.demospringmvc.user;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;import org.springframework.http.MediaType;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.ResultMatcher;import static net.bytebuddy.matcher.ElementMatchers.is;import static org.hamcrest.Matchers.equalTo;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;@RunWith(SpringRunner.class)@WebMvcTest(UserController.class)public class UserControllerTest { @Autowired MockMvc mockMvc; @Test public void hello() throws Exception{ mockMvc.perform(get("/hello")) .andExpect(status().isOk()) .andExpect(content().string("hello")); } @Test public void createUser_JSON() throws Exception { String userJson = ""; mockMvc.perform(post("/users/create") .contentType(MediaType.APPLICATION_JSON_UTF8) .accept(MediaType.APPLICATION_JSON_UTF8) .content(userJson)) .andExpect(status().isOk()) .andExpect(jsonPath("$.username",is(equalTo("keesun")))) .andExpect(jsonPath("$.password",is(equalTo("123")))); }}Error:(40, 32) java: incompatible types: org.springframework.test.web.servlet.result.JsonPathResultMatchers cannot be converted to org.springframework.test.web.servlet.ResultMatcher
- 미해결스프링 부트 개념과 활용
TestRestTemplate 으로 getForOjbect 했을경우
안녕하세요. TestRestTemplate 으로 getForOjbect 했을경우 return 값이 json String 형식이라면 json의 값들을 확인하려면 어떤식으로 해야되나요? MockMvc 를 활용했을경우에는 jsonpath로 확인을 하던데.. TestRestTemplate 으로 해야 하는 경우라면 어떻게 확인해야 하는지 궁금합니다.
- 미해결스프링 부트 개념과 활용
선행학습 질문드립니다.
안녕하세요. 현재 스프링 프레임워크 시중에 나와있는 책으로 공부하고 있는 학생입니다. 아무래도 책으로 공부하다보니 학습진행이 더딘 부분이 있어 검색하던 중 강사님 강의를 알게 되었고, 강사님의 입문 강의 본 후 스프링 부트 강의를 결제하였습니다. 본론만 말씀드리자면, 제가 현재 프레임워크를 다 배운 상태도 아니고, MVC 기본구조 화면처리, 페이징/검색처리, REST 방식과 Ajax를 이용한 댓글 처리정도까지만 학습한 상태입니다. 제가 알기론 통상적으로 프레임워크를 먼저 배우고 난 후에 스프링부트를 배워야 한다고 들었는데, 강사님의 강의 소개부분에서는 스프링 부트를 사용하면서 프레임워크를 학습하는 사람들이 많다고 하시더라구요. 저의 현 상태에서 부트강의 듣고 핵심기술 강의로 넘어가도 될런지요? 아니면, 개인적으로 보던 책을 마저 마치고 스프링부트 강의를 들어야 할지 판단이 안서네요. 지금 제가 급하게 스프링 프레임워크와 스프링부트까지 마무리 해야 하는 상황이라 글 남깁니다. 바쁘신 가운데 글 읽어주셔서 감사드리고 답변 기다리겠습니다. 감사합니다.
- 미해결스프링 부트 개념과 활용
자바버전
이클립스 그래들 중인데 그래이들은 parent 를 가지고 오지 않는다고 들었는데 java version은어떻게 바꿀까요??
- 미해결스프링 부트 개념과 활용
get() static 메서드 import할때
안녕하세요. MockMvc 로 perform메서드에 get() 사용할때 import static method 시키려고 하면 아래 그림처럼 리스만 잔뜩 나오고 필요한 MockMvcRequestBuilders.get 은 없네요.. 그래서 직접 쳐서 import를 시켜줘야 하는데요.. 혹시 어떤 설정이 빠져서 그런건지 궁금합니다.
- 미해결스프링 부트 개념과 활용
디스패처 서블릿과 서블릿 컨테이너 질문입니다.
마지막에 하신 말씀이 정리하자면 서블릿 컨테이너(톰캣, 네티,..)를 유동적으로 개발자가 만든 다음에 그 서블릿 컨테이너를 디스패처 서블릿에 등록한다고 이해하면 될까요?
- 미해결스프링 부트 개념과 활용
MyBatis가 application.properties의 내용을 못읽습니다..도와주세요ㅠㅠ
안녕하세요, 백기선님 강의를 2개 구매해서 들으면서, 학교 졸업작품 프로젝트를 하고있는 대학생 입니다. 강의 내용과 무관한 부분이라 매우 염치없지만.. 정말 너무 해결이 안돼서 혹시나 하는 마음에 조심스럽게 질문 납겨봅니다..ㅠㅠ SpringBoot에 MySql+MyBatis를 이용해 데이터베이스를 연동하고 있습니다. mapper.xml 파일 경로 설정에서 해결하고싶은 문제가 생겼습니다. 맨 처음에는 아래의 사진 1과 같이 Java 세션팩토리 설정파일에서 mapper.xml파일의 경로를 설정해 주었을 경우, 정상 연결 및 쿼리 실행, 출력을 성공하였습니다. 그런데 제가 이후에 mapper.xml파일의 경로를, 아래 사진 2처럼 사진1의 코드에서 코드 3줄을 지우고,자바 세션팩토리 설정파일이 아닌, application.properties 파일에mybatis.mapper-locations=mappers/mapper.xml와 같이 설정하고 싶었습니다. 아래의 사진3 처럼요. 그런데 이렇게 하니까 mybatis invalid bound statement (not found) 에러가 뜹니다.어떻게 하면 자바세션팩토리 설정파일에 mapper.xml파일의 경로를 적지 않고,application.properties파일에 적어서 해결할 수 있는지 알고싶습니다! 코드 [MyBatisConfig.java] package com.inu555.smart_busbell.server.config; import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; @configurationpublic class MyBatisConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{ SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean(); sqlSessionFactory.setDataSource(dataSource); // sqlSessionFactory.setTypeAliasesPackage("com.inu555.smart_busbell.server.vo");// PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();// sqlSessionFactory.setMapperLocations(pathMatchingResourcePatternResolver.getResources("classpath:/mappers/*.xml")); return sqlSessionFactory.getObject(); } @Bean SqlSessionTemplate sqlSession(SqlSessionFactory sqlSessionFactory){ return new SqlSessionTemplate(sqlSessionFactory); } } ================================================================ [MySqlReservationDao.java] package com.inu555.smart_busbell.server.dao; import com.inu555.smart_busbell.server.vo.Reservation;import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Component; import java.util.HashMap;import java.util.List; @component@Mapperpublic interface MySqlReservationDao {// 예약객체정보 데이터베이스에 저장int insert(Reservation reservation) throws Exception;// 안드로이드 식별자로 예약정보 데이터베이스에서 삭제int delete(String androidClientIdentifier) throws Exception;// 안드로이드 식별자로 예약한 정보가 있는지 확인Reservation selectOne(String androidClientIdentifier) throws Exception;// 특정 버스에 특정 정류장으로 예약한 사람 모두 조회List selectList(HashMap<String, String> param) throws Exception;// 안드로이드 식별자로 예약정보 업데이트int update(Reservation reservation) throws Exception;} ================================================================ [resources/mappers/MySqlReservationDao.xml] 환경 운영체제 : Windows10언어 : Java, XMLIDE : Intellij ultimate spring boot라이브러리 4.0.0org.springframework.bootspring-boot-starter-parent2.2.2.RELEASEcom.inu555smart_busbell0.0.1-SNAPSHOTsmart_busbellMain server of smart busbell by inu555 <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!-- JSON 데이터 활용을 위한 Jaskson 라이브러리 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.8</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 시도해본 방법 mapper.xml, mapper.java 로 mapper xml파일과 java interface 파일의 이름을 일치시켜봄.mapper의 namespace 또한 java interface의 풀패키지명을 포함해서 적어줌.두 개의 파일을 같은 폴더에 넣어봄.mapper.xml 경로 앞에 classpath 를 붙여봄.구글링 하여 찾을 수 있는 거의 대부분의 mapper.xml 경로설정,mybatis 사용법을 12시간 이상 찾아보고 적용해봄.에러문구를 통해서도 구글링 하여봄. 전체 SpringBoot 프로젝트는https://github.com/taehee-kim-dev/SmartBusbell/tree/master/SpringBoot_main_server입니다. 답변 주실 때 현재 이러한 오류가 나는 이유와해결방안을 적용했을 때 왜 오류가 해결되는지자세하게 설명해주시면 정말정말 감사드리겠습니다. 감사합니다!!
- 미해결스프링 부트 개념과 활용
JpaRepository에서 리턴타입 문의입니다.
안녕하세요. findUsername에서 Optional을 사용하셔서 이에 관련하여 질문을 하고 싶습니다. 1. JpaRepository에서 메서드를 추가 할 때, Optional을 사용하는 것이 더 나은 방법인지 2. 강사님은 어떤 방식으로 주로 사용하셨는지 입니다. 아래 내용은 이 질문을 하게 된 참조입니다. - findById 리턴값이 Optional임을 확인 - stackoverflow로 분위기(https://stackoverflow.com/questions/25883608/why-is-spring-data-still-using-null-references-as-return-values)