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

Spring Framework เป็นเฟรมเวิร์กโอเพนซอร์ซสำหรับการพัฒนาแอพพลิเคชั่นบนแพลตฟอร์ม Java ที่แกนกลางของมันคือการสนับสนุนที่หลากหลายสำหรับสถาปัตยกรรมที่ใช้ส่วนประกอบและในปัจจุบันมีโมดูลรวมมากกว่ายี่สิบโมดูล

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 

4
แบบสอบถามแบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ด้วย Spring CrudRepository
ด้วย Spring CrudRepository Query; ฉันต้องการเลือกเอนทิตี "DeviceType" ที่มีคุณสมบัติเป็น "ชื่อ" แต่การสืบค้นต่อไปนี้ให้เลือกสิทธิ์ในลักษณะที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ฉันจะทำให้ตัวพิมพ์เล็กหรือใหญ่ได้อย่างไร ขอบคุณ. public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> { public Iterable<DeviceType> findByNameContaining(String name); }

3
MongoTemplate ของ Spring Data กับ MongoRepository ต่างกันอย่างไร
ฉันจำเป็นต้องเขียนแอปพลิเคชันที่ฉันสามารถทำแบบสอบถามที่ซับซ้อนโดยใช้ข้อมูลสปริงและ mongodb ฉันเริ่มต้นโดยใช้ MongoRepository แต่ต้องดิ้นรนกับการสืบค้นที่ซับซ้อนเพื่อค้นหาตัวอย่างหรือเพื่อทำความเข้าใจไวยากรณ์อย่างแท้จริง ฉันกำลังพูดถึงคำถามเช่นนี้: @Repository public interface UserRepositoryInterface extends MongoRepository<User, String> { List<User> findByEmailOrLastName(String email, String lastName); } หรือการใช้แบบสอบถามที่ใช้ JSON ซึ่งฉันลองโดยการลองผิดลองถูกเพราะฉันไม่เข้าใจไวยากรณ์ที่ถูกต้อง แม้หลังจากอ่านเอกสาร mongodb แล้ว (ตัวอย่างที่ใช้งานไม่ได้เนื่องจากไวยากรณ์ไม่ถูกต้อง) @Repository public interface UserRepositoryInterface extends MongoRepository<User, String> { @Query("'$or':[{'firstName':{'$regex':?0,'$options':'i'}},{'lastName':{'$regex':?0,'$options':'i'}}]") List<User> findByEmailOrFirstnameOrLastnameLike(String searchText); } หลังจากอ่านเอกสารทั้งหมดแล้วดูเหมือนว่าmongoTemplateจะดีกว่าMongoRepositoryมาก ฉันอ้างถึงเอกสารดังต่อไปนี้: http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/ ช่วยบอกหน่อยได้ไหมว่าอะไรใช้สะดวกและทรงพลังกว่ากัน mongoTemplateหรือMongoRepository? ทั้งคู่เป็นผู้ใหญ่เหมือนกันหรือคนใดคนหนึ่งขาดคุณสมบัติมากกว่ากัน?

1
เรียกใช้วิธีการใส่คำอธิบายประกอบ @Bean ในการกำหนดค่า Spring java
ฉันอยากรู้ว่าการฉีดสปริงจัดการกับวิธีการโทรด้วย@Beanคำอธิบายประกอบอย่างไร ถ้าฉันใส่@Beanคำอธิบายประกอบในเมธอดและส่งคืนอินสแตนซ์ฉันเข้าใจว่าสิ่งนั้นบอกให้สปริงสร้าง bean โดยเรียกใช้เมธอดและรับอินสแตนซ์ที่ส่งคืน อย่างไรก็ตามบางครั้งถั่วนั้นจะต้องใช้ในการต่อสายถั่วอื่นหรือตั้งค่ารหัสอื่น วิธีปกติจะทำคือเรียกใช้@Beanวิธีการใส่คำอธิบายประกอบเพื่อรับอินสแตนซ์ คำถามของฉันคือเหตุใดสิ่งนี้จึงไม่ทำให้มีหลายอินสแตนซ์ของถั่วลอยอยู่รอบ ๆ ? ตัวอย่างเช่นดูรหัสด้านล่าง (นำมาจากคำถามอื่น) entryPoint()วิธีการที่กำกับด้วย@Beanดังนั้นฉันจะคิดฤดูใบไม้ผลิที่จะสร้างตัวอย่างใหม่ของBasicAuthenticationEntryPointเป็นถั่ว จากนั้นเราจะเรียกentryPoint()อีกครั้งในการกำหนดค่าบล็อก แต่ดูเหมือนว่าentryPoint()จะส่งคืนอินสแตนซ์ bean และไม่ได้ถูกเรียกหลายครั้ง (ฉันพยายามบันทึกและได้รับรายการบันทึกเพียงรายการเดียว) เป็นไปได้ว่าเราสามารถเรียกใช้entryPoint()หลายครั้งในส่วนอื่น ๆ ของการกำหนดค่าและเราจะได้รับอินสแตนซ์เดียวกันเสมอ ความเข้าใจของฉันถูกต้องหรือไม่? ฤดูใบไม้ผลิมีการเขียนวิธีการใหม่ที่มีคำอธิบายประกอบด้วยมนต์ขลัง@Beanหรือไม่? @Bean public BasicAuthenticationEntryPoint entryPoint() { BasicAuthenticationEntryPoint basicAuthEntryPoint = new BasicAuthenticationEntryPoint(); basicAuthEntryPoint.setRealmName("My Realm"); return basicAuthEntryPoint; } @Override protected void configure(HttpSecurity http) throws Exception { http .exceptionHandling() .authenticationEntryPoint(entryPoint()) .and() .authorizeUrls() …
102 java  spring  cglib 

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
Spring Data JPA ค้นหาโดยคุณสมบัติวัตถุฝังตัว
ฉันต้องการเขียนลายเซ็นเมธอดอินเทอร์เฟซ Spring Data JPA ที่จะช่วยให้ฉันค้นหาเอนทิตีที่มีคุณสมบัติของอ็อบเจ็กต์ฝังตัวในเอนทิตีนั้น ไม่มีใครรู้ว่าเป็นไปได้หรือไม่และถ้าเป็นเช่นนั้นได้อย่างไร นี่คือรหัสของฉัน: @Entity @Table(name = "BOOK_UPDATE_QUEUE", indexes = { uniqueConstraints = @UniqueConstraint(columnNames = { "bookId", "region" }, name = "UK01_BOOK_UPDATE_QUEUE")) public class QueuedBook implements Serializable { @Embedded @NotNull private BookId bookId; ... } @Embeddable public class BookId implements Serializable { @NotNull @Size(min=1, max=40) private String …

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



11
จัดการข้อยกเว้นการตรวจสอบความปลอดภัยในฤดูใบไม้ผลิด้วย @ExceptionHandler
ฉันใช้ Spring MVC @ControllerAdviceและ@ExceptionHandlerจัดการข้อยกเว้นทั้งหมดของ REST Api ใช้งานได้ดีสำหรับข้อยกเว้นที่ส่งโดยตัวควบคุมเว็บ mvc แต่ไม่ได้ผลสำหรับข้อยกเว้นที่เกิดจากตัวกรองแบบกำหนดเองสำหรับการรักษาความปลอดภัยแบบสปริงเนื่องจากทำงานก่อนที่จะเรียกใช้เมธอดคอนโทรลเลอร์ ฉันมีตัวกรองความปลอดภัยแบบสปริงที่กำหนดเองซึ่งทำการรับรองความถูกต้องตามโทเค็น: public class AegisAuthenticationFilter extends GenericFilterBean { ... public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { ... } catch(AuthenticationException authenticationException) { SecurityContextHolder.clearContext(); authenticationEntryPoint.commence(request, response, authenticationException); } } } ด้วยจุดเข้าที่กำหนดเองนี้: @Component("restAuthenticationEntryPoint") public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint{ …

27
'ฟิลด์ต้องการชนิดของถั่วที่หาไม่พบ' error spring restful API โดยใช้ mongodb
ดังนั้นฉันจึงเรียนรู้ฤดูใบไม้ผลิในสองสามสัปดาห์ตามบทช่วยสอนนี้ การสร้างบริการเว็บ RESTful ทุกอย่างเป็นไปด้วยดีจนกระทั่งฉันพยายามรวมเข้ากับ mongodb ดังนั้นฉันจึงทำตามบทแนะนำนี้ การเข้าถึงข้อมูลด้วย MongoDB แต่การปฏิบัติของฉันบางส่วนยังคงใช้แบบแรก โครงสร้างไดเร็กทอรีโปรเจ็กต์ของฉันจึงเป็นแบบนี้ src/ ├── main/ │ └── java/ | ├── model/ | | └── User.java | ├── rest/ | | ├── Application.java | | ├── IndexController.java | | └── UsersController.java | └── service/ | └── UserService.java └── resources/ └── application.properties นี่คือไฟล์model / …
101 java  spring  mongodb  rest 

17
การทดสอบ JUnit ผ่านใน Eclipse แต่ล้มเหลวใน Maven Surefire
ฉันได้เขียนการทดสอบ JUnit โดยใช้ไลบรารี JUnit 4 และ Spring-test เมื่อฉันเรียกใช้การทดสอบภายใน Eclipse ให้รันได้ดีและผ่าน แต่เมื่อฉันเรียกใช้โดยใช้ Maven (ในระหว่างกระบวนการสร้าง) พวกเขาล้มเหลวโดยให้ข้อผิดพลาดเกี่ยวกับสปริง ฉันไม่แน่ใจว่าอะไรเป็นสาเหตุของปัญหา JUnit, Surefire หรือ Spring นี่คือรหัสทดสอบการกำหนดค่าสปริงและข้อยกเว้นที่ได้รับจาก Maven: PersonServiceTest.java package com.xyz.person.test; import static com.xyz.person.util.FjUtil.toFjList; import static junit.framework.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import …

7
โปรไฟล์เริ่มต้นใน Spring 3.1
ในใบสมัครของฉันฉันมีถั่วที่มีคำอธิบายประกอบ@Profile("prod")และ@Profile("demo"). อันแรกอย่างที่คุณเดาได้ :) ใช้กับถั่วที่เชื่อมต่อกับฐานข้อมูลการผลิตและอันที่สองใส่คำอธิบายประกอบถั่วที่ใช้ DB ปลอม ( HashMapหรืออะไรก็ได้) เพื่อให้การพัฒนาเร็วขึ้น สิ่งที่ฉันต้องการคือโปรไฟล์เริ่มต้น ( "prod") ที่จะใช้เสมอหากไม่ถูกแทนที่ด้วย " อย่างอื่น " สมบูรณ์แบบจะมีในweb.xml: <context-param> <param-name>spring.profiles.active</param-name> <param-value>prod</param-value> </context-param> แล้วลบล้างสิ่งนี้ด้วย-Dspring.profiles.active="demo"เพื่อที่ฉันจะได้: mvn jetty:run -Dspring.profiles.active="demo". แต่น่าเศร้าที่มันไม่ทำงาน มีความคิดอย่างไรที่ฉันจะทำได้ การตั้งค่า-Dspring.profiles.active="prod"ในสภาพแวดล้อมทั้งหมดของฉันไม่ใช่ตัวเลือก
100 java  spring  profiles 

7
ฉันจะใช้ Spring Security โดยไม่มีเซสชันได้อย่างไร
ฉันกำลังสร้างเว็บแอปพลิเคชันที่มี Spring Security ซึ่งจะใช้งานได้บน Amazon EC2 และใช้ Elastic Load Balancers ของ Amazon น่าเสียดายที่ ELB ไม่รองรับเซสชันที่ติดหนึบดังนั้นฉันต้องตรวจสอบให้แน่ใจว่าแอปพลิเคชันของฉันทำงานได้อย่างถูกต้องโดยไม่มีเซสชัน จนถึงตอนนี้ฉันได้ตั้งค่า RememberMeServices เพื่อกำหนดโทเค็นผ่านคุกกี้และมันก็ใช้ได้ดี แต่ฉันต้องการให้คุกกี้หมดอายุพร้อมกับเซสชันเบราว์เซอร์ (เช่นเมื่อเบราว์เซอร์ปิด) ฉันต้องจินตนาการว่าฉันไม่ใช่คนแรกที่ต้องการใช้ Spring Security โดยไม่มีเซสชัน ... มีข้อเสนอแนะหรือไม่?

9
ชนิดเนื้อหา 'application / x-www-form-urlencoded; charset = UTF-8' ไม่รองรับ @RequestBody MultiValueMap
ตามคำตอบสำหรับปัญหาเกี่ยวกับ x-www-form-urlencoded ด้วย Spring @Controller ฉันได้เขียนวิธีการ @Controller ด้านล่างแล้ว @RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST , produces = {"application/json", "application/xml"} , consumes = {"application/x-www-form-urlencoded"} ) public @ResponseBody Representation authenticate(@PathVariable("email") String anEmailAddress, @RequestBody MultiValueMap paramMap) throws Exception { if(paramMap == null || paramMap.get("password") == null) { throw new IllegalArgumentException("Password not provided"); } …

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