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

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

6
วิธีปิดใช้งานส่วนหัวการตอบสนอง 'X-Frame-Options' ใน Spring Security
ฉันมี CKeditor ใน jsp และเมื่อใดก็ตามที่ฉันอัปโหลดบางสิ่งข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น: Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'. ฉันได้ลองลบ Spring Security แล้วและทุกอย่างก็เหมือนมีเสน่ห์ ฉันจะปิดใช้งานสิ่งนี้ในไฟล์ xml ความปลอดภัยในฤดูใบไม้ผลิได้อย่างไร ฉันควรเขียนอะไรระหว่าง<http>แท็ก

11
Spring Boot - วิธีรับพอร์ตทำงาน
ฉันมีแอปพลิเคชั่นสปริงบูต (โดยใช้ tomcat 7 ในตัว) และฉันได้ตั้งค่าไว้server.port = 0ในของฉันapplication.propertiesเพื่อให้ฉันมีพอร์ตแบบสุ่ม หลังจากเซิร์ฟเวอร์บูตและทำงานบนพอร์ตฉันต้องสามารถรับพอร์ตที่เลือกได้ ฉันไม่สามารถใช้ได้@Value("$server.port")เพราะมันเป็นศูนย์ นี่เป็นข้อมูลที่ดูเหมือนเรียบง่ายเหตุใดฉันจึงไม่สามารถเข้าถึงได้จากรหัส java ของฉัน ฉันจะเข้าถึงได้อย่างไร?

7
ไม่รวม @Component จาก @ComponentScan
ฉันมีองค์ประกอบที่ฉันต้องการแยกออกจาก@ComponentScanรายการเฉพาะ@Configuration: @Component("foo") class Foo { ... } มิฉะนั้นดูเหมือนว่าจะปะทะกับคลาสอื่น ๆ ในโครงการของฉัน ฉันไม่เข้าใจการชนกันอย่างถ่องแท้ แต่ถ้าฉันแสดงความคิดเห็นใน@Componentคำอธิบายประกอบสิ่งต่างๆจะเป็นไปอย่างที่ฉันต้องการ แต่โปรเจ็กต์อื่น ๆ ที่ต้องอาศัยไลบรารีนี้คาดว่าคลาสนี้จะจัดการโดย Spring ดังนั้นฉันจึงขอข้ามไปเฉพาะในโปรเจ็กต์ของฉัน ฉันลองใช้@ComponentScan.Filter: @Configuration @EnableSpringConfigured @ComponentScan(basePackages = {"com.example"}, excludeFilters={ @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)}) public class MySpringConfiguration {} แต่ดูเหมือนจะไม่ได้ผล ถ้าฉันลองใช้FilterType.ASSIGNABLE_TYPEฉันได้รับข้อผิดพลาดแปลก ๆ เกี่ยวกับการไม่สามารถโหลดคลาสที่ดูเหมือนสุ่มได้: เกิดจาก: java.io.FileNotFoundException: class path resource [junit / framework / TestCase.class] ไม่สามารถเปิดได้เนื่องจากไม่มีอยู่ ฉันยังลองใช้type=FilterType.CUSTOMดังต่อไปนี้: class ExcludeFooFilter implements TypeFilter …

1
คำแนะนำในการปรับใช้ไฟล์ war เทียบกับ jar ที่ปฏิบัติการได้ด้วยคอนเทนเนอร์แบบฝัง
ดูเหมือนว่าจะมีแนวโน้มในปัจจุบันในพื้นที่จาวาที่จะย้ายออกจากการปรับใช้เว็บแอปพลิเคชัน java ไปยังคอนเทนเนอร์ java servlet (หรือแอปพลิเคชันเซิร์ฟเวอร์) ในรูปแบบไฟล์ war (หรือไฟล์ ear) และแทนที่แอปพลิเคชันเป็น jar ปฏิบัติการด้วย เซิร์ฟเวอร์ servlet / HTTP ที่ฝังตัวเช่นท่าเทียบเรือ และฉันหมายถึงสิ่งนี้มากกว่านั้นในวิธีที่เฟรมเวิร์กรุ่นใหม่มีอิทธิพลต่อวิธีการพัฒนาและปรับใช้แอปพลิเคชันใหม่มากกว่าการส่งมอบแอปพลิเคชันไปยังผู้ใช้ปลายทาง (เพราะตัวอย่างเช่นฉันเข้าใจว่าทำไมเจนกินส์ถึงใช้คอนเทนเนอร์แบบฝังตัวง่ายมากในการหยิบจับ ). ตัวอย่างของเฟรมเวิร์กที่ใช้อ็อพชัน jar ที่เรียกใช้งานได้: Dropwizard , Spring BootและPlay (มันไม่ได้ทำงานบนคอนเทนเนอร์ servlet แต่เซิร์ฟเวอร์ HTTP ถูกฝังอยู่) คำถามของฉันคือมาจากสภาพแวดล้อมที่เราได้ปรับใช้แอปพลิเคชัน (จนถึงจุดนี้ส่วนใหญ่เป็น Struts2) กับแอปพลิเคชันเซิร์ฟเวอร์ Tomcat เดียวต้องมีการเปลี่ยนแปลงแนวทางปฏิบัติที่ดีที่สุดหรือข้อควรพิจารณาอะไรบ้างหากเราวางแผนที่จะใช้แนวทางคอนเทนเนอร์แบบฝัง เหรอ? ขณะนี้เรามีแอปพลิเคชันพื้นบ้านประมาณ 10 รายการที่ทำงานบนเซิร์ฟเวอร์ Tomcat ตัวเดียวและสำหรับแอปพลิเคชันขนาดเล็กเหล่านี้ความสามารถในการแบ่งปันทรัพยากรและจัดการบนเซิร์ฟเวอร์เดียวนั้นดี แอปพลิเคชันของเราไม่ได้มีวัตถุประสงค์เพื่อแจกจ่ายให้กับผู้ใช้ปลายทางเพื่อให้ทำงานภายในสภาพแวดล้อมของพวกเขา อย่างไรก็ตามหากเราตัดสินใจที่จะใช้ประโยชน์จาก java framework ที่ใหม่กว่าแนวทางนี้ควรเปลี่ยนไปหรือไม่? …

8
การส่งคืนออบเจ็กต์ JSON เป็นการตอบสนองใน Spring Boot
ฉันมี RestController ตัวอย่างใน Spring Boot: @RestController @RequestMapping("/api") class MyRestController { @GetMapping(path = "/hello") public JSONObject sayHello() { return new JSONObject("{'aa':'bb'}"); } } ฉันใช้ไลบรารี JSON org.json เมื่อฉันกด API /helloฉันได้รับข้อยกเว้นว่า: Servlet.service () สำหรับ servlet [dispatcherServlet] ในบริบทที่มีพา ธ [] ข้อยกเว้นที่ถูกโยน [การประมวลผลคำขอล้มเหลว; ข้อยกเว้นที่ซ้อนกันคือ java.lang.IllegalArgumentException: ไม่พบตัวแปลงสำหรับค่าส่งคืนของประเภท: class org.json.JSONObject] ที่มีสาเหตุ java.lang.IllegalArgumentException: ไม่พบตัวแปลงสำหรับค่าส่งคืนของประเภท: class org.json.JSONObject ปัญหาคืออะไร? ใครช่วยอธิบายได้ว่าเกิดอะไรขึ้น?

16
CORS พร้อมสปริงบูตและเชิงมุม js ไม่ทำงาน
ฉันพยายามเรียกจุดสิ้นสุด REST บนแอปพลิเคชันหนึ่ง (แอปพลิเคชันสปริงบูต) จากอีกแอปพลิเคชัน (angularjs) แอปพลิเคชันกำลังทำงานบนโฮสต์และพอร์ตต่อไปนี้ แอปพลิเคชัน REST โดยใช้สปริงบูต http://localhost:8080 แอปพลิเคชัน HTML โดยใช้ angularjs http://localhost:50029 ฉันกำลังใช้spring-securityกับแอปพลิเคชันสปริงบูตด้วย จากแอปพลิเคชัน HTML ฉันสามารถตรวจสอบสิทธิ์กับแอปพลิเคชัน REST ได้ แต่หลังจากนั้นฉันก็ยังไม่สามารถเข้าถึงปลายทาง REST ใด ๆ ตัวอย่างเช่นฉันมีบริการ angularjs ที่กำหนดไว้ดังนี้ adminServices.factory('AdminService', ['$resource', '$http', 'conf', function($resource, $http, conf) { var s = {}; s.isAdminLoggedIn = function(data) { return $http({ method: 'GET', url: …

4
ไฟล์ application.properties สภาพแวดล้อมเฉพาะในแอ็พพลิเคชัน Spring Boot [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน3 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ ในแอปพลิเคชัน Spring Boot ของฉันฉันต้องการสร้างไฟล์คุณสมบัติเฉพาะสภาพแวดล้อม ประเภทบรรจุภัณฑ์ของแอปพลิเคชันของฉันในสงครามและฉันกำลังดำเนินการใน Tomcat แบบฝัง ฉันใช้ sts และดำเนินการหลักจาก sts เอง ฉันสามารถมีไฟล์คุณสมบัติเฉพาะของสภาพแวดล้อมเช่น application - $ {env-value} .properties ได้หรือไม่ ในกรณีข้างต้น env-value จะมีค่าเป็น local / devl / test / prod จะตั้งค่าไฟล์ env-value ได้ที่ไหน? สำหรับ local ฉันสามารถตั้งเป็นอาร์กิวเมนต์ jvm ผ่าน sts ใครอ่าน application.properties ในแอปพลิเคชัน …

4
Spring Security 5 การแทนที่สำหรับ OAuth2RestTemplate
ในspring-security-oauth2:2.4.0.RELEASEชั้นเรียนเช่นOAuth2RestTemplate, OAuth2ProtectedResourceDetailsและClientCredentialsAccessTokenProviderทั้งหมดได้รับการทำเครื่องหมายว่าเลิก จาก javadoc ในคลาสเหล่านี้ชี้ไปที่คู่มือการโยกย้ายความปลอดภัยฤดูใบไม้ผลิที่บอกว่าคนควรโยกย้ายไปยังโครงการหลักความปลอดภัยสปริง 5 อย่างไรก็ตามฉันมีปัญหาในการค้นหาว่าฉันจะใช้กรณีการใช้งานของฉันในโครงการนี้อย่างไร เอกสารและตัวอย่างทั้งหมดพูดคุยเกี่ยวกับการรวมเข้ากับผู้ให้บริการ OAuth ส่วนที่ 3 หากคุณต้องการให้มีการตรวจสอบคำขอขาเข้าของแอปพลิเคชันของคุณและคุณต้องการใช้ผู้ให้บริการ OAuth บุคคลที่สามเพื่อยืนยันตัวตน ในกรณีที่ใช้งานทั้งหมดที่ฉันต้องการจะทำคือการร้องขอกับRestTemplateบริการภายนอกที่ได้รับการคุ้มครองโดย OAuth ขณะนี้ฉันสร้างด้วยรหัสลูกค้าและความลับของฉันซึ่งฉันผ่านเข้าไปในOAuth2ProtectedResourceDetails OAuth2RestTemplateฉันยังมีการClientCredentialsAccessTokenProviderเพิ่มแบบกำหนดเองลงในOAuth2ResTemplateที่เพิ่งเพิ่มส่วนหัวพิเศษบางอย่างลงในคำขอโทเค็นที่ต้องการโดยผู้ให้บริการ OAuth ที่ฉันใช้ ในเอกสารประกอบ Spring-security 5 ฉันได้พบส่วนที่ระบุการปรับแต่งคำขอโทเค็นแต่อีกครั้งที่ดูเหมือนจะอยู่ในบริบทของการตรวจสอบคำขอที่เข้ามากับผู้ให้บริการ OAuth บุคคลที่สาม ยังไม่ชัดเจนว่าคุณจะใช้สิ่งนี้ร่วมกับบางสิ่งเช่น a อย่างไรClientHttpRequestInterceptorเพื่อให้แน่ใจว่าแต่ละคำขอที่ส่งออกไปยังบริการภายนอกจะได้รับโทเค็นก่อนแล้วจึงได้รับสิ่งนั้นเพิ่มเข้ากับคำขอ นอกจากนี้ในคู่มือการโยกย้ายที่ลิงก์ด้านบนมีการอ้างอิงถึงสิ่งOAuth2AuthorizedClientServiceที่กล่าวว่ามีประโยชน์สำหรับการใช้ในเครื่องดักฟัง แต่อีกครั้งดูเหมือนว่าจะต้องอาศัยสิ่งต่าง ๆ เช่นClientRegistrationRepositoryที่ดูเหมือนจะเป็นที่ที่มันยังคงลงทะเบียนสำหรับผู้ให้บริการบุคคลที่สาม ที่จัดทำขึ้นเพื่อให้แน่ใจว่าคำขอที่เข้ามานั้นได้รับการรับรองความถูกต้อง มีวิธีใดบ้างที่ฉันสามารถใช้ประโยชน์จากฟังก์ชั่นใหม่ใน spring-security 5 สำหรับการลงทะเบียนผู้ให้บริการ OAuth เพื่อรับโทเค็นเพื่อเพิ่มไปยังคำขอขาออกจากแอปพลิเคชันของฉัน

6
MockMvc ไม่สามารถจัดการอักขระ UTF-8 อีกต่อไปด้วย Spring Boot 2.2.0 ปล่อย
หลังจากฉันอัพเกรดเป็น2.2.0.RELEASESpring Boot เวอร์ชั่นที่ออกใหม่การทดสอบบางอย่างของฉันล้มเหลว ปรากฏว่าMediaType.APPLICATION_JSON_UTF8ได้รับการคัดค้านและจะไม่ส่งคืนเป็นประเภทเนื้อหาเริ่มต้นจากวิธีการควบคุมที่ไม่ได้ระบุประเภทเนื้อหาอย่างชัดเจน ทดสอบรหัสเช่น String content = mockMvc.perform(get("/some-api") .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) .andReturn() .getResponse() .getContentAsString(); ทันใดนั้นไม่ทำงานอีกต่อไปเนื่องจากประเภทเนื้อหาไม่ตรงกันดังที่แสดงด้านล่าง java.lang.AssertionError: Content type Expected :application/json;charset=UTF-8 Actual :application/json การเปลี่ยนรหัสเพื่อ.andExpect(content().contentType(MediaType.APPLICATION_JSON))แก้ไขปัญหาในตอนนี้ แต่ตอนนี้เมื่อเปรียบเทียบcontentกับวัตถุที่เป็นอนุกรมที่คาดไว้ยังคงไม่ตรงกันหากมีอักขระพิเศษใด ๆ ในวัตถุ ปรากฏว่า.getContentAsString()วิธีการดังกล่าวไม่ได้ใช้ประโยชน์จากการเข้ารหัสอักขระ UTF-8 ตามค่าเริ่มต้น (เพิ่มเติม) java.lang.AssertionError: Response content expected:<[{"description":"Er hörte leise Schritte hinter sich."}]> but was:<[{"description":"Er hörte leise Schritte hinter sich."}]> Expected :[{"description":"Er hörte …

2
วิธีอุ่นเครื่องคลาส Java เพื่อหลีกเลี่ยงการโทรช้าครั้งแรก?
ฉันกำลังทำโปรเจ็กต์ที่ฉันต้องการให้การเรียกใช้ API ทั้งหมดใช้เวลาน้อยกว่า 1 วินาที แต่ฉันกำลังประสบปัญหากับการโทรครั้งแรกไปยังแต่ละเส้นทางที่ช้ากว่าครั้งต่อไปนี้ ขณะนี้การโทร / ล็อกอินครั้งแรกใช้เวลา 3.6 วินาทีและโทรถัดไปใช้เวลา 170ms และเหมือนกันสำหรับเส้นทางอื่น ๆ ทั้งหมด ฉันค้นพบการใช้-XX:+TraceClassLoadingสิ่งนั้นในการโทรครั้งแรกชั้นเรียนถูกโหลดในหน่วยความจำและทำให้เกิดปัญหาประสิทธิภาพ อย่างไรก็ตามฉันไม่พบวิธีที่ง่ายในการโหลดคลาสทั้งหมดเมื่อเริ่มต้นและสำหรับแต่ละบริการใหม่ฉันต้องเพิ่มการเรียกวอร์มอัพใน ApplicationRunner ใครบ้างมีวิธีแก้ปัญหาในการโหลดคลาสของแอพพลิเคชั่น SpringBoot หรืออุ่นเครื่องเส้นทางทั้งหมด?

4
วิธีการปิดการส่งออกจาก hooks ปิดในการทดสอบการไล่ระดับบูต?
คุณสามารถสร้างโครงการจาก start.spring.io ถึงปัญหานี้ได้จากhttps://start.spring.io/starter.zip?type=gradle-project&language=java&bootVersion=2.2.5.RELEASE&baseDir=demo&groupId=com.example&artifactId=demo = สาธิตและคำอธิบาย = สาธิต% 20project% 20for% 20Spring% 20Boot & packageName = com.example.demo และบรรจุภัณฑ์ขวด = & javaVersion = 1.8 และอ้างอิง = H2, ข้อมูล JPA เว็บ ฉันมีแอพพลิเคชั่น springBoot หลายโมดูลที่สร้างขึ้นด้วย gradle มีการทดสอบการรวม SpringBoot มากมาย เมื่อฉันสร้างฉันจบลงด้วยการส่งออกบางส่วนจากการปิด SpringBoot ไปยังคอนโซลที่แสดงด้านล่าง ฉันจะปิดเอาต์พุตนี้ได้อย่างไร ± |master ↑1 {1} S:3 U:10 ✗| → ./gradlew build > Task …

5
Springfox swagger ไม่ทำงานใน spring boot 2.2.0
ฉันต้องการอัพเกรด spring boot v2.1.9 เป็น 2.2.0 แต่หลังจากการอัพเกรดฉันได้รับข้อยกเว้นบางอย่างซึ่งบอกว่าสปริงฟ็อกซ์กำลังใช้สปริง - ปลั๊กอิน - คอร์เวอร์ชันเก่ากว่า มีวิธีอื่นในการแก้ปัญหานี้หรือไม่หรือฉันต้องเลิกใช้ปลั๊กอิน springfox หรือไม่ *************************** APPLICATION FAILED TO START *************************** Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: springfox.documentation.spring.web.plugins.DocumentationPluginsManager.createContextBuilder(DocumentationPluginsManager.java:152) The following method did not exist: org.springframework.plugin.core.PluginRegistry.getPluginFor(Ljava/lang/Object;Lorg/springframework/plugin/core/Plugin;)Lorg/springframework/plugin/core/Plugin; The …

1
การแทนที่ AuthorizationServer ที่เลิกใช้แล้วใน Spring Security คืออะไร
Spring Security 5.2.2 ได้รวมโครงการ Spring Security OAuth แต่ไม่ใช่ AuthorizationServer หรือ ResourceServer AuthorizationServer ใน Spring Security 5.2.2 มีอะไรทดแทน? OAuth-2.0-โยกย้าย-Guide เอกสารนี้มีคำแนะนำสำหรับการย้ายไคลเอนต์ OAuth 2.0 และเซิร์ฟเวอร์ทรัพยากรจาก Spring Security OAuth 2.x เป็น Spring Security 5.2.x เนื่องจาก Spring Security ไม่ได้ให้การสนับสนุนเซิร์ฟเวอร์การอนุญาตการโอนย้ายเซิร์ฟเวอร์ความปลอดภัย OAuth Authorization ของ Spring Security อยู่นอกขอบเขตสำหรับเอกสารนี้

10
Spring boot 2.2.0 ปัญหาการเริ่มต้น Spring HateOas
ฉันย้ายโครงการจาก spring boot 2.1.9 เป็น 2.2.0 ในขณะที่เริ่มโครงการกำลังเผชิญerrorข้อความด้านล่าง สิ่งที่อาจทำให้เกิดไม่ได้ใช้ไฟล์hateoasของฉันpom.xmlอย่างใดอย่างหนึ่ง Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 17: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,syntheticModelProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,apiListingScannerPluginRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'linkDiscoverers' defined in class path resource [org/springframework/hateoas/config/HateoasConfiguration.class]: Unsatisfied dependency expressed through method 'linkDiscoverers' parameter 0; …

3
วิธีเปิดใช้งานการเข้าสู่ระบบใน org.slf4j สำหรับรุ่น: '2.0.0-alpha1' ใน Spring boot
ฉันใช้การบันทึก SLF4J เพื่อพิมพ์บันทึกทั้งหมด ฉันใช้ org.slf4j เวอร์ชันล่าสุด การใช้งาน 'org.slf4j: slf4j-api: 2.0.0-alpha1' การใช้งาน 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1' แต่ฉันได้รับข้อผิดพลาดต่อไปนี้และไม่มีการพิมพ์บันทึก SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8. SLF4J: Ignoring binding found …

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