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

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

9
คำอธิบายประกอบ @Valid ระบุอะไรในฤดูใบไม้ผลิ
ในตัวอย่างต่อไปนี้ScriptFileพารามิเตอร์ถูกทำเครื่องหมายด้วย@Validคำอธิบายประกอบ อะไร@Validคำอธิบายประกอบทำอย่างไร @RequestMapping(value = "/scriptfile", method = RequestMethod.POST) public String create(@Valid ScriptFile scriptFile, BindingResult result, ModelMap modelMap) { if (scriptFile == null) throw new IllegalArgumentException("A scriptFile is required"); if (result.hasErrors()) { modelMap.addAttribute("scriptFile", scriptFile); modelMap.addAttribute("showcases", ShowCase.findAllShowCases()); return "scriptfile/create"; } scriptFile.persist(); return "redirect:/scriptfile/" + scriptFile.getId(); }

12
ไม่สามารถแก้ไขตัวยึดตำแหน่งในค่าสตริง
ฉันพยายามใช้คุณสมบัติจาก.propertiesไฟล์ แต่ดูเหมือนจะไม่ได้ผล นี่คือรหัสของฉัน: @Service("ServiceFTP") @Transactional public class ServiceFTPImpl implements ServiceFTP { @Value("${project.ftp.adresse}") private String adresse; @Value("${project.ftp.login}") private String compte; @Value("${project.ftp.password}") private String motDePasse; @Value("${project.ftp.root}") private String ROOT; [...] } คลาสนี้ใช้@Valueคำอธิบายประกอบเพื่อรับคุณสมบัติ นอกจากนี้ยังประกาศเป็น Spring Service และเชื่อมโยงกับinfraContext.xmlไฟล์ของฉัน: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <context:property-placeholder location="classpath:context-core.properties"/> [...] </beans> โดยใช้context:property-placeholderฉันลิงก์ไฟล์นี้กับไฟล์ของฉันcontext-core.properties: …
88 java  spring 

8
ฉันจะรับ Session Object ใน Spring ได้อย่างไร
ผมค่อนข้างใหม่ในฤดูใบไม้ผลิและฤดูใบไม้ผลิการรักษาความปลอดภัย ฉันพยายามเขียนโปรแกรมที่ฉันต้องการรับรองความถูกต้องของผู้ใช้ที่ส่วนท้ายของเซิร์ฟเวอร์โดยใช้ Spring security ฉันคิดสิ่งต่อไปนี้: public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{ @Override protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken) throws AuthenticationException { System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated()); } @Override protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { System.out.println("Method invoked : retrieveUser"); //so far so good, i can authenticate user here, …

5
Java 1.8 ASM ClassReader ล้มเหลวในการแยกวิเคราะห์ไฟล์คลาส - อาจเป็นเพราะไฟล์คลาส Java เวอร์ชันใหม่ที่ยังไม่รองรับ
เว็บแอปพลิเคชันของฉันทำงานได้ดีบน JDK 1.7 แต่ขัดข้องบน 1.8 โดยมีข้อยกเว้นต่อไปนี้ (ระหว่างการเริ่มต้นแอ็พพลิเคชันเซิร์ฟเวอร์ด้วย Jetty 8) ฉันใช้ Spring version: 3.2.5.RELEASE ข้อยกเว้น: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet ฉันคิดว่าปัญหาเกิดขึ้นเนื่องจากสปริงและไลบรารี "asm.jar" ซึ่งขึ้นอยู่กับ ฉันจะแก้ไขปัญหานี้ได้อย่างไร
88 java  spring  java-8 

7
วิธีปิดการใช้งาน Spring Security สำหรับ URL เฉพาะ
ฉันใช้ระบบรักษาความปลอดภัยสปริงแบบไม่ระบุสถานะ แต่ในกรณีของการสมัครใช้งานฉันต้องการปิดใช้งานการรักษาความปลอดภัยสปริงฉันปิดการใช้งานโดยใช้ antMatchers("/api/v1/signup").permitAll(). แต่ใช้งานไม่ได้ฉันได้รับข้อผิดพลาดด้านล่าง: message=An Authentication object was not found in the SecurityContext, type=org.springframework.security.authentication.AuthenticationCredentialsNotFoundException ฉันคิดว่านี่หมายความว่าตัวกรองความปลอดภัยของสปริงกำลังทำงาน ลำดับ URL ของฉันจะเป็น "/ api / v1" เสมอ การกำหนดค่าสปริงของฉันคือ @Override protected void configure(HttpSecurity http) throws Exception { http. csrf().disable(). sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS). and(). authorizeRequests(). antMatchers("/api/v1/signup").permitAll(). anyRequest().authenticated(). and(). anonymous().disable(); http.addFilterBefore(new AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class); } ตัวกรองการพิสูจน์ตัวตนของฉันคือ @Override public void doFilter(ServletRequest …

7
Model ใน ModelAndView จาก Spring MVC คืออะไร
มีฟังก์ชันพื้นฐานนี้ protected ModelAndView handleRequestInternal(...) { ... return new ModelAndView("welcomePage", "WelcomeMessage", message); } ฉันรู้ว่าสิ่งนี้จะส่งคืน modelandView ฉันรู้ว่านั่นwelcomePageคือ Viewname ของฉันซึ่งหมายความว่าwelcomepage.jspจะมีการเรียกชื่อ แต่ฉันสับสนกับ Model part คืออะไร คืออะไรWelcomeMessageและmessageและวิธีการแบบการทำงานในสถานการณ์ที่?

18
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
ฉันใช้spring 3.1.0.RELEASEและคอนเทนเนอร์ servlet ของฉันคือtomcat 7และ IDE ของฉันคือeclipse indigo และ jar spring-webmvc-3.1.0.RELEASE.jarซึ่งมีDispatcherServlet อยู่ในโฟลเดอร์ lib และเมื่อ เรียกใช้แอปพลิเคชันฉันได้รับข้อยกเว้น: java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) โปรดแจ้งว่าเหตุใดฉันจึงได้รับข้อยกเว้นนี้และวิธีแก้ไข แก้ไข: ต่อไปนี้เป็นไฟล์การกำหนดค่าของฉัน: …

2
Spring MVC รับค่าพารามิเตอร์ของ GET HTTP Request ในวิธีการควบคุมของฉันได้อย่างไร
ในช่วงนี้ฉันกำลังศึกษาตัวอย่างการแสดง Spring MVC (ดาวน์โหลดได้จาก STS dasboard) และฉันมีคำถามง่ายๆเกี่ยวกับRequest Mappingตัวอย่าง: 1) ในhome.jspหน้าของฉันฉันมีลิงค์นี้: <li> <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a> </li> อย่างที่คุณเห็นในลิงค์นี้ฉันกำลังทำ HTTP GET Request โดยมีพารามิเตอร์ "foo" ที่มีค่า: "bar" คำขอ HTTP นี้ได้รับการจัดการโดยวิธีการต่อไปนี้ของคลาสคอนโทรลเลอร์ MappingController: @RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo") public @ResponseBody String byParameter() { return "Mapped by path + method …


4
เมื่อใดควรใช้ @RestController vs @RepositoryRestResource
ฉันได้รับการดูตัวอย่างต่างๆของวิธีการใช้ฤดูใบไม้ผลิที่มีส่วนที่เหลือ เป้าหมายสุดท้ายของเราคือการHATEOAS/HALตั้งค่าSpring ฉันได้เห็นสองวิธีที่แตกต่างกันในการเรนเดอร์RESTภายในSpring ผ่าน@RestControllerภายในคอนโทรลเลอร์ ผ่าน@RepositoryRestResourceภายใน Repository สิ่งที่ฉันกำลังดิ้นรนเพื่อค้นหาคือทำไมคุณถึงใช้อีกอันหนึ่ง เมื่อพยายามที่จะใช้HALสิ่งที่ดีที่สุด? แบ็กเอนด์ฐานข้อมูลของเราคือNeo4j

3
ไฮเบอร์เนตการออกแบบแอปพลิเคชันแบบโหลดขี้เกียจ
ฉันมักจะใช้Hibernateร่วมกับSpring framework และเป็นความสามารถในการแบ่งเขตธุรกรรมแบบเปิดเผย (เช่น@Transactional ) อย่างที่เราทุกคนทราบกันดีว่าไฮเบอร์เนตพยายามที่จะไม่รุกรานและโปร่งใสที่สุดเท่าที่จะเป็นไปได้อย่างไรก็ตามสิ่งนี้พิสูจน์ได้ว่าท้าทายกว่าเล็กน้อยเมื่อใช้lazy-loadedความสัมพันธ์ ฉันเห็นทางเลือกในการออกแบบจำนวนมากที่มีระดับความโปร่งใสแตกต่างกัน ทำให้ความสัมพันธ์ไม่ขี้เกียจโหลด (เช่น fetchType=FetchType.EAGER) นี่มันม่วงทั้งไอเดียขี้เกียจโหลด .. เริ่มต้นคอลเลกชันโดยใช้ Hibernate.initialize(proxyObj); นี่หมายถึงการมีเพศสัมพันธ์ที่ค่อนข้างสูงกับ DAO แม้ว่าเราสามารถกำหนดอินเทอร์เฟซได้initializeแต่การใช้งานอื่น ๆ ก็ไม่รับประกันว่าจะให้สิ่งที่เทียบเท่า เพิ่มลักษณะการทำธุรกรรมให้กับModelอ็อบเจ็กต์ถาวร(โดยใช้พร็อกซีแบบไดนามิกหรือ@Transactional ) ฉันไม่ได้ลองใช้วิธีพร็อกซีแบบไดนามิกแม้ว่าฉันจะไม่เคยให้ @Transactional ทำงานกับวัตถุถาวรด้วยตัวเอง อาจเป็นเพราะการจำศีลนั้นกำลังดำเนินการกับพร็อกซีที่จะเข้ามา สูญเสียการควบคุมเมื่อมีการทำธุรกรรมเกิดขึ้นจริง ระบุทั้ง lazy / non-lazy API เช่นloadData()และloadDataWithDeps() บังคับให้แอปพลิเคชันรู้ว่าเมื่อใดควรใช้รูทีนใดการมีเพศสัมพันธ์ที่แน่นหนาอีกครั้ง วิธีล้นloadDataWithA(),, .... ,loadDataWithX() บังคับให้ค้นหาการอ้างอิงเช่นโดยจัดเตรียมbyId()การดำเนิน การเท่านั้น ต้องใช้กิจวัตรที่ไม่ใช่เชิงวัตถุจำนวนมากเช่นfindZzzById(zid)แล้วgetYyyIds(zid)แทนที่จะเป็นz.getY() การดึงแต่ละวัตถุในคอลเลกชันทีละรายการจะเป็นประโยชน์หากมีค่าใช้จ่ายในการประมวลผลระหว่างธุรกรรมจำนวนมาก สร้างส่วนหนึ่งของแอปพลิเคชัน @Transactional แทนDAOเท่านั้น ข้อควรพิจารณาที่เป็นไปได้ของธุรกรรมที่ซ้อนกัน ต้องใช้กิจวัตรที่ปรับให้เหมาะกับการจัดการธุรกรรม (เช่นเล็กน้อยพอเพียง) ผลกระทบทางโปรแกรมเล็กน้อยแม้ว่าอาจทำให้เกิดธุรกรรมจำนวนมาก จัดเตรียม DAO ด้วยโปรไฟล์การดึงข้อมูลแบบไดนามิกเช่นloadData(id, …

5
ส่งข้อความถึงผู้ใช้เฉพาะบน Spring Websocket
จะส่งข้อความ websocket จากเซิร์ฟเวอร์ไปยังผู้ใช้เฉพาะได้อย่างไร? เว็บแอปของฉันมีการตั้งค่าความปลอดภัยแบบสปริงและใช้ websocket ฉันพบปัญหายุ่งยากพยายามส่งข้อความจากเซิร์ฟเวอร์ไปยังผู้ใช้ที่ระบุเท่านั้น ความเข้าใจของฉันจากการอ่านคู่มือมาจากเซิร์ฟเวอร์ที่เราสามารถทำได้ simpMessagingTemplate.convertAndSend("/user/{username}/reply", reply); และในฝั่งไคลเอ็นต์: stompClient.subscribe('/user/reply', handler); แต่ฉันไม่สามารถเรียกใช้การเรียกกลับการสมัครรับข้อมูลได้ ฉันได้ลองเส้นทางต่างๆมากมาย แต่ไม่มีโชค ถ้าฉันส่งไปที่/ topic / replyมันใช้งานได้ แต่ผู้ใช้ที่เชื่อมต่ออื่น ๆ ทั้งหมดจะได้รับมันด้วย เพื่อแสดงปัญหาฉันได้สร้างโปรเจ็กต์เล็ก ๆ นี้บน github: https://github.com/gerrytan/wsproblem ขั้นตอนในการผลิตซ้ำ: 1) โคลนและสร้างโครงการ (ตรวจสอบให้แน่ใจว่าคุณใช้ jdk 1.7 และ maven 3.1) $ git clone https://github.com/gerrytan/wsproblem.git $ cd wsproblem $ mvn jetty:run 2) ไปที่http://localhost:8080เข้าสู่ระบบโดยใช้ bob / …

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 ในแอปพลิเคชัน …

7
ย้อนกลับธุรกรรมหลังจาก @Test
ก่อนอื่นฉันพบเธรดจำนวนมากใน StackOverflow เกี่ยวกับเรื่องนี้ แต่ไม่มีสิ่งใดที่ช่วยฉันได้จริงๆขอโทษที่ถามคำถามที่อาจซ้ำกัน ฉันกำลังทำการทดสอบ JUnit โดยใช้การทดสอบสปริงโค้ดของฉันมีลักษณะเช่นนี้ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {}) public class StudentSystemTest { @Autowired private StudentSystem studentSystem; @Before public void initTest() { // set up the database, create basic structure for testing } @Test public void test1() { } ... } ปัญหาของฉันคือฉันต้องการให้การทดสอบของฉันไม่มีผลต่อการทดสอบอื่น ๆ ดังนั้นฉันต้องการสร้างบางสิ่งเช่นย้อนกลับสำหรับการทดสอบแต่ละครั้ง ฉันค้นหาสิ่งนี้มามากมาย แต่ฉันไม่พบอะไรเลย ฉันใช้ Hibernate …

22
คำขอ Spring JSON รับ 406 (ไม่สามารถยอมรับได้)
นี่คือจาวาสคริปต์ของฉัน: function getWeather() { $.getJSON('getTemperature/' + $('.data option:selected').val(), null, function(data) { alert('Success'); }); } นี่คือตัวควบคุมของฉัน: @RequestMapping(value="/getTemperature/{id}", headers="Accept=*/*", method = RequestMethod.GET) @ResponseBody public Weather getTemparature(@PathVariable("id") Integer id){ Weather weather = weatherService.getCurrentWeather(id); return weather; } spring-servlet.xml <context:annotation-config /> <tx:annotation-driven /> รับข้อผิดพลาดนี้: GET http://localhost:8080/web/getTemperature/2 406 (Not Acceptable) ส่วนหัว: ส่วนหัวการตอบกลับ Server Apache-Coyote/1.1 Content-Type text/html;charset=utf-8 …
85 java  javascript  ajax  json  spring 

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