คำถามติดแท็ก spring-boot

Spring Boot เป็นเฟรมเวิร์กที่อนุญาตให้สร้างแอพพลิเคชั่นและบริการระดับคุณภาพการผลิตจากสปริงได้อย่างง่ายดายด้วยความยุ่งยากน้อยที่สุด ใช้มุมมองที่มีความคิดเห็นเกี่ยวกับแพลตฟอร์ม Spring ที่ออกแบบมาเพื่อทำงานกับผู้ใช้ใหม่และมีประสบการณ์ของ Spring

7
Spring Boot - ฉีดแผนที่จาก application.yml
ฉันมีแอปพลิเคชั่นSpring Bootดังต่อไปนี้application.yml- โดยพื้นฐานแล้วจากที่นี่ : info: build: artifact: ${project.artifactId} name: ${project.name} description: ${project.description} version: ${project.version} ฉันสามารถฉีดค่าเฉพาะเช่น @Value("${info.build.artifact}") String value อย่างไรก็ตามฉันต้องการฉีดแผนที่ทั้งหมดเช่นสิ่งนี้: @Value("${info}") Map<String, Object> info เป็นไปได้ (หรือสิ่งที่คล้ายกัน)? เห็นได้ชัดว่าฉันสามารถโหลด yaml ได้โดยตรง แต่สงสัยว่า Spring มีบางอย่างรองรับหรือไม่
103 java  spring  spring-boot 

11
วิธีปรับแต่งตัวทำแผนที่ Jackson JSON ที่ Spring Boot ใช้โดยปริยาย?
ฉันใช้ Spring Boot (1.2.1) ในลักษณะเดียวกันกับในการสอนการสร้าง RESTful Web Service : @RestController public class EventController { @RequestMapping("/events/all") EventList events() { return proxyService.getAllEvents(); } } ข้างต้น Spring MVC ใช้แจ็คสันโดยปริยายสำหรับการทำให้EventListวัตถุของฉันเป็นอนุกรมเป็น JSON แต่ฉันต้องการปรับแต่งง่ายๆในรูปแบบ JSON เช่น: setSerializationInclusion(JsonInclude.Include.NON_NULL) คำถามคือวิธีที่ง่ายที่สุดในการปรับแต่งเครื่องมือทำแผนที่ JSON โดยปริยายคืออะไร? ฉันลองใช้แนวทางในบล็อกโพสต์นี้สร้าง CustomObjectMapper และอื่น ๆ แต่ขั้นตอนที่ 3 "ลงทะเบียนคลาสในบริบท Spring" ล้มเหลว: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jacksonFix': …

4
ไม่มีเมธอด CrudRepository # findOne
ฉันใช้ Spring 5 ในโครงการของฉัน CrudRepository#findOneจนถึงวันนี้มีวิธีการที่มีอยู่ แต่หลังจากดาวน์โหลด snapshot ล่าสุดมันก็หายไปทันที! มีการอ้างอิงว่าวิธีนี้ไม่สามารถใช้ได้ในขณะนี้หรือไม่? รายการพึ่งพาของฉัน: apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' repositories { mavenCentral() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } } dependencies { compile 'org.springframework.boot:spring-boot-starter-data-jpa' runtime 'com.h2database:h2:1.4.194' } อัพเดท: ดูเหมือนว่าวิธีนี้จะถูกแทนที่ด้วย CrudRepository#findById

7
วิธีส่งตัวเลือก JVM จาก bootRun
ฉันกำลังพัฒนาแอปพลิเคชันเว็บ Spring แบบง่ายที่สื่อสารกับโฮสต์ระยะไกลและฉันต้องการทดสอบในเครื่องหลังพร็อกซีขององค์กร ฉันใช้ปลั๊กอิน gradle "Spring Boot" และคำถามคือฉันจะระบุการตั้งค่าพร็อกซีสำหรับ JVM ได้อย่างไร ฉันได้ลองทำหลายวิธี: gradle -Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080 bootRun export JAVA_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" export GRADLE_OPTS="-Dhttp.proxyHost=X.X.X.X -Dhttp.proxyPort=8080" แต่ดูเหมือนว่าจะไม่มีการทำงานใด ๆ - "NoRouteToHostException" พ่นรหัส "เครือข่าย" นอกจากนี้ฉันได้เพิ่มโค้ดพิเศษเพื่อแก้จุดบกพร่อง JVM start อาร์กิวเมนต์ RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); List<String> arguments = runtimeMxBean.getInputArguments(); for (String arg: arguments) System.out.println(arg); และพิมพ์อาร์กิวเมนต์เดียวเท่านั้น: "-Dfile.encoding = UTF-8" หากฉันตั้งค่าคุณสมบัติของระบบในรหัส: System.setProperty("http.proxyHost", …
100 java  gradle  spring-boot 

8
ยังไม่ได้ใช้วิธี org.postgresql.jdbc.PgConnection.createClob ()
ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161] at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.useContextualLobCreation(LobCreatorBuilderImpl.java:113) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.makeLobCreatorBuilder(LobCreatorBuilderImpl.java:54) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.<init>(JdbcEnvironmentImpl.java:271) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:114) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) [hibernate-core-5.2.14.Final.jar:5.2.14.Final] at …
99 java  spring-boot 

3
ความแตกต่างระหว่างการใช้ MockMvc กับ SpringBootTest และการใช้ WebMvcTest
ฉันเพิ่งเริ่มใช้ Spring Boot และกำลังพยายามทำความเข้าใจว่าการทดสอบทำงานอย่างไรใน SpringBoot ฉันสับสนเล็กน้อยเกี่ยวกับความแตกต่างระหว่างข้อมูลโค้ดสองรายการต่อไปนี้: ข้อมูลโค้ด 1: @RunWith(SpringRunner.class) @WebMvcTest(HelloController.class) public class HelloControllerApplicationTest { @Autowired private MockMvc mvc; @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().string(equalTo("Greetings from Spring Boot!"))); } } การทดสอบนี้ใช้@WebMvcTestคำอธิบายประกอบซึ่งฉันเชื่อว่ามีไว้สำหรับการทดสอบชิ้นส่วนคุณลักษณะและทดสอบเฉพาะเลเยอร์ MVC ของเว็บแอปพลิเคชัน ข้อมูลโค้ด 2: @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockMvc public class HelloControllerTest { @Autowired private MockMvc mvc; @Test …

9
Spring boot @ResponseBody ไม่ซีเรียลไลซ์รหัสเอนทิตี
มีปัญหาแปลก ๆ และคิดไม่ออกว่าจะจัดการอย่างไร มี POJO ง่ายๆ: @Entity @Table(name = "persons") public class Person { @Id @GeneratedValue private Long id; @Column(name = "first_name") private String firstName; @Column(name = "middle_name") private String middleName; @Column(name = "last_name") private String lastName; @Column(name = "comment") private String comment; @Column(name = "created") private Date created; @Column(name …

8
ค่า Spring Boot application.properties ไม่ได้เติมข้อมูล
ฉันมีแอป Spring Boot ที่เรียบง่ายมากที่ฉันกำลังพยายามทำงานกับการกำหนดค่าภายนอก ฉันได้พยายามติดตามข้อมูลในเอกสารสปริงบูตแล้วแต่ฉันชนถนนกั้น เมื่อฉันรันแอปด้านล่างคอนฟิกูเรชันภายนอกในไฟล์ application.properties ไม่ได้รับการเติมข้อมูลลงในตัวแปรภายใน bean ฉันแน่ใจว่าฉันกำลังทำอะไรโง่ ๆ ขอบคุณสำหรับคำแนะนำ MyBean.java (อยู่ใน / src / main / java / foo / bar /) package foo.bar; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; @Component public class MyBean { @Value("${some.prop}") private String prop; public MyBean() { System.out.println("================== " + …

20
java.lang.IllegalArgumentException: ไม่พบตัวแปลงสำหรับค่าส่งคืนของชนิด
ด้วยรหัสนี้ @RequestMapping(value = "/bar/foo", method = RequestMethod.GET) public ResponseEntity<foo> foo() { Foo model; ... return ResponseEntity.ok(model); } } ฉันได้รับข้อยกเว้นดังต่อไปนี้ java.lang.IllegalArgumentException: No converter found for return value of type ฉันเดาว่าออบเจ็กต์ไม่สามารถแปลงเป็น JSON ได้เนื่องจาก Jackson หายไป ฉันไม่เข้าใจว่าเพราะอะไรฉันคิดว่าแจ็คสันถูกสร้างขึ้นด้วยสปริงบูต จากนั้นฉันได้พยายามเพิ่ม Jackson ใน pom.xml แต่ฉันยังคงมีข้อผิดพลาดเดียวกัน <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.3</version> </dependency> ฉันต้องเปลี่ยนคุณสมบัติสปริงบูตเพื่อให้ใช้งานได้หรือไม่? …

11
โปรไฟล์เริ่มต้น Spring-boot สำหรับการทดสอบการรวม
Spring-boot ใช้โปรไฟล์ Spring ( http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html ) ซึ่งอนุญาตให้อินสแตนซ์มีการกำหนดค่าแยกกันสำหรับสภาพแวดล้อมที่แตกต่างกัน วิธีหนึ่งที่ฉันใช้คุณสมบัตินี้คือกำหนดค่าฐานข้อมูลทดสอบที่จะใช้โดยการทดสอบการรวม ฉันสงสัยว่าจำเป็นต้องสร้าง 'การทดสอบ' โปรไฟล์ของตัวเองและเปิดใช้งานโปรไฟล์นี้อย่างชัดเจนในแต่ละไฟล์ทดสอบหรือไม่? ตอนนี้ฉันทำด้วยวิธีต่อไปนี้: สร้าง application-test.properties ภายใน src / main / resources เขียน config เฉพาะการทดสอบที่นั่น (ตอนนี้ชื่อฐานข้อมูล) ในทุกไฟล์ทดสอบประกอบด้วย: @ActiveProfiles("test") มีวิธีที่ชาญฉลาด / รัดกุมกว่านี้ไหม? ตัวอย่างเช่นโปรไฟล์การทดสอบเริ่มต้น? แก้ไข 1: คำถามนี้เกี่ยวข้องกับ Spring-Boot 1.4.1

6
Spring Boot Test ละเว้น logging.level
หนึ่งในโมดูล maven ของฉันไม่สนใจระดับการบันทึกของฉันเมื่อทำการทดสอบ ในsrc/test/resourcesฉันมีapplication.properties: app.name=bbsng-import-backend app.description=Import Backend Module for Application spring.profiles.active=test # LOGGING logging.level.root=error logging.level.org.springframework.core =fatal logging.level.org.springframework.beans=fatal logging.level.org.springframework.context=fatal logging.level.org.springframework.transaction=error logging.level.org.springframework.test=error logging.level.org.springframework.web=error logging.level.org.hibernate=ERROR application-test.propertiesฉันยังพยายาม แอปพลิเคชันของฉันบันทึกข้อมูลจำนวนมากโดยเฉพาะอย่างยิ่งเมื่อโหลดบริบท ฉันพยายามlogback.xml, logback-test.xmlและlogback-spring.xmlแต่ไม่มีอะไรที่จะช่วยให้ ปอมของฉัน: <parent> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-import</artifactId> <version>0.1.0-SNAPSHOT</version> </parent> <artifactId>bbsng-import-backend</artifactId> <name>bbsng-import-backend</name> <properties> <start-class>at.company.bbsng.dataimport.ApplicationImportBackend</start-class> </properties> <dependencies> <!-- APPLICATION ... --> <dependency> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-app-domain</artifactId> <scope>test</scope> </dependency> <!-- SPRING ... …


19
Spring boot Security ปิดใช้งานความปลอดภัย
เมื่อฉันใช้security.basic.enabled = falseเพื่อปิดใช้งานการรักษาความปลอดภัยบนโปรเจ็กต์ Spring Boot ที่มีการอ้างอิงต่อไปนี้: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ฉันเห็นข้อยกเว้นต่อไปนี้: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.ManagementSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could …

6
Spring Boot และวิธีกำหนดค่ารายละเอียดการเชื่อมต่อกับ MongoDB?
เป็นมือใหม่สำหรับ Spring Boot ฉันสงสัยว่าจะกำหนดค่ารายละเอียดการเชื่อมต่อสำหรับ MongoDB ได้อย่างไร ฉันได้ลองใช้ตัวอย่างปกติแล้ว แต่ไม่มีรายละเอียดการเชื่อมต่อเลย ฉันต้องการระบุฐานข้อมูลที่จะใช้และ url / port ของโฮสต์ที่รัน MongoDB คำแนะนำหรือคำแนะนำใด ๆ ?

16
ฉันจะกำหนดค่า HikariCP ในแอป Spring Boot ในไฟล์ application.properties ได้อย่างไร
ฉันกำลังพยายามตั้งค่า HikariCP ในแอป Spring Boot (1.2.0.M1) ของฉันดังนั้นฉันจึงสามารถทดสอบใช้แทน Tomcat DBCP ได้ ฉันต้องการกำหนดค่าพูลการเชื่อมต่อในไฟล์ application.properties เหมือนที่ทำกับ Tomcat แต่ฉันคิดไม่ออกว่าควรทำอย่างไร ตัวอย่างทั้งหมดที่ฉันพบแสดงสไตล์ JavaConfig หรือใช้ไฟล์คุณสมบัติ HikariCP แยกต่างหาก ใครสามารถช่วยฉันหาชื่อคุณสมบัติเพื่อกำหนดค่าใน application.properties ฉันต้องการเปลี่ยนจากการใช้แนวทาง driverClassName เป็นแนวทาง DataSourceClassName เนื่องจากดูสะอาดกว่าและขอแนะนำ เป็นไปได้ในไฟล์ application.properties ของฉันหรือไม่ นี่คือสิ่งที่ฉันมีสำหรับ Tomcat DBCP (มีเพียงการกำหนดค่าพื้นฐานบางอย่างไม่ได้ล้างออกทั้งหมด) spring.datasource.validation-query=SELECT 1 spring.datasource.max-active=10 spring.datasource.max-idle=8 spring.datasource.min-idle=8 spring.datasource.initial-size=5 spring.datasource.test-on-borrow=true spring.datasource.test-on-return=true และฉันกำลังใช้ driverClassName และ jdbc url เพื่อตั้งค่าการเชื่อมต่อ: spring.datasource.url=jdbc:mysql://localhost:3306/myDb spring.datasource.driverClassName=com.mysql.jdbc.Driver

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.