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

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

6
ความแตกต่างระหว่าง applicationContext.xml และ spring-servlet.xml ใน Spring Framework
มีapplicationContext.xmlและspring-servlet.xmlที่เกี่ยวข้อง แต่อย่างใดในฤดูใบไม้ผลิกรอบ? ไฟล์คุณสมบัติที่ประกาศapplicationContext.xmlใช้จะพร้อมใช้งานDispatcherServletหรือไม่ ในบันทึกที่เกี่ยวข้องทำไมฉันต้องมี*-servlet.xmlเลย? ทำไมapplicationContext.xmlคนเดียวไม่เพียงพอ?
373 java  spring 

30
วิธีการแก้ปัญหา“ ล้มเหลวในการเริ่มต้นการรวบรวมบทบาท” อย่างเฉื่อยชายกเว้นไฮเบอร์เนต
ฉันมีปัญหานี้: org.hibernate.LazyInitializationException: ล้มเหลวในการเริ่มต้นการรวบรวมบทบาทอย่างเกียจคร้าน: mvc3.model.Topic.comments ไม่มีเซสชันหรือเซสชันถูกปิด นี่คือรูปแบบ: @Entity @Table(name = "T_TOPIC") public class Topic { @Id @GeneratedValue(strategy=GenerationType.AUTO) private int id; @ManyToOne @JoinColumn(name="USER_ID") private User author; @Enumerated(EnumType.STRING) private Tag topicTag; private String name; private String text; @OneToMany(mappedBy = "topic", cascade = CascadeType.ALL) private Collection<Comment> comments = new LinkedHashSet<Comment>(); ... public Collection<Comment> getComments() …

15
Spring MVC @PathVariable ที่มีจุด (.) กำลังถูกตัดทอน
นี่คือความต่อเนื่องของคำถาม Spring MVC @PathVariable ที่ถูกตัดทอน ฟอรัม Spring ระบุว่ามีการแก้ไข (เวอร์ชัน 3.2) เป็นส่วนหนึ่งของ ContentNegotiationManager ดูลิงค์ด้านล่าง https://jira.springsource.org/browse/SPR-6164 https://jira.springsource.org/browse/SPR-7632 ในแอปพลิเคชันของฉัน requestParameter ที่มี. com จะถูกปัดเศษ ใครช่วยอธิบายวิธีใช้คุณสมบัติใหม่นี้ให้ฉันได้บ้าง สามารถกำหนดค่าได้อย่างไรที่ xml หมายเหตุ: spring forum- # 1 Spring MVC @PathVariable ที่มีจุด (.) กำลังถูกตัดทอน

14
ความแตกต่างระหว่างคำอธิบายประกอบ @Controller ของสปริงและ @RestController
ความแตกต่างระหว่างสปริง@Controllerและ@RestControllerหมายเหตุประกอบ สามารถใช้@Controllerคำอธิบายประกอบสำหรับทั้งแอปพลิเคชัน Web MVC และ REST ได้หรือไม่ ถ้าใช่เราจะแยกความแตกต่างได้อย่างไรว่าเป็นแอปพลิเคชัน Web MVC หรือ REST
356 java  spring  spring-mvc 

7
@RequestParam เทียบกับ @PathVariable
อะไรคือความแตกต่างระหว่าง@RequestParamและ@PathVariableในขณะที่ใช้งานอักขระพิเศษ? +ได้รับการยอมรับโดย@RequestParamas space ในกรณีของ@PathVariable, ได้รับการยอมรับว่าเป็น++
354 java  spring  spring-mvc 

15
จะบันทึกคำสั่ง SQL ใน Spring Boot ได้อย่างไร
ฉันต้องการบันทึกคำสั่ง SQL ในไฟล์ ฉันมีคุณสมบัติดังต่อไปนี้ในapplication.properties spring.datasource.url=... spring.datasource.username=user spring.datasource.password=1234 spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true security.ignored=true security.basic.enabled=false logging.level.org.springframework.web=INFO logging.level.org.hibernate=INFO logging.file=c:/temp/my-log/app.log เมื่อฉันเรียกใช้ใบสมัครของฉัน cmd>mvn spring-boot:run ฉันเห็นคำสั่ง sql ในคอนโซล แต่ไม่ปรากฏในไฟล์ app.log ไฟล์มีเพียงบันทึกพื้นฐานจากฤดูใบไม้ผลิ ฉันควรทำอย่างไรเพื่อดูคำสั่ง sql ในไฟล์บันทึก

6
Spring - @Transactional - เกิดอะไรขึ้นในพื้นหลัง
ฉันต้องการที่จะรู้ว่าสิ่งที่เกิดขึ้นจริงเมื่อคุณอธิบายวิธีการด้วย@Transactionalหรือไม่ แน่นอนฉันรู้ว่า Spring จะปิดวิธีการนั้นในธุรกรรม แต่ฉันมีข้อสงสัยดังต่อไปนี้: ฉันได้ยินมาว่า Spring สร้างคลาสพร็อกซีหรือไม่ คนที่สามารถอธิบายเรื่องนี้ในเชิงลึก มีอยู่จริงในพร็อกซีคลาสนั้น เกิดอะไรขึ้นกับชั้นเรียนจริง และฉันจะดูชั้นพร็อกซีที่สร้างขึ้นของสปริงได้อย่างไร ฉันยังอ่านในเอกสาร Spring ที่: หมายเหตุ: เนื่องจากกลไกนี้จะขึ้นอยู่กับผู้รับมอบฉันทะเท่านั้น 'ภายนอก' วิธีการโทรเข้ามาผ่านพร็อกซี่จะถูกดัก ซึ่งหมายความว่า 'การภาวนาด้วยตนเอง' เช่นวิธีการภายในวัตถุเป้าหมายที่เรียกใช้วิธีการอื่นของวัตถุเป้าหมายจะไม่นำไปสู่การทำธุรกรรมจริงที่รันไทม์แม้ว่าจะมีการทำเครื่องหมายด้วยวิธีการที่เรียก@Transactional! ที่มา: http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html เหตุใดการเรียกใช้เมธอดภายนอกเท่านั้นจึงจะอยู่ภายใต้ธุรกรรมและไม่ใช่วิธีเรียกใช้ด้วยตนเอง

6
ใช้ @JsonIgnore เฉพาะระหว่างการทำให้เป็นอนุกรม แต่ไม่ใช่การดีซีเรียลไลเซชัน
ฉันมีวัตถุผู้ใช้ที่ส่งไปยังและจากเซิร์ฟเวอร์ เมื่อฉันส่งวัตถุผู้ใช้ออกฉันไม่ต้องการส่งรหัสผ่านที่แฮชไปยังไคลเอนต์ ดังนั้นฉันเพิ่ม@JsonIgnoreในคุณสมบัติรหัสผ่าน แต่ยังป้องกันไม่ให้ถูกดีซีเรียลไลซ์ลงในรหัสผ่านซึ่งทำให้ยากต่อการลงทะเบียนผู้ใช้เมื่อพวกเขาไม่ได้รับรหัสผ่าน ฉัน@JsonIgnoreจะนำไปใช้กับการทำให้เป็นอนุกรมเท่านั้นและไม่ได้ทำการดีซีเรียลไลเซชัน? ฉันใช้ Spring JSONView ดังนั้นฉันจึงไม่สามารถควบคุมสิ่งObjectMapperต่างๆ สิ่งที่ฉันได้ลอง: เพิ่ม@JsonIgnoreไปยังคุณสมบัติ เพิ่ม@JsonIgnoreในวิธี getter เท่านั้น

3
ทำความเข้าใจเกี่ยวกับ Spring @Autowired การใช้งาน
ฉันกำลังอ่านเอกสารอ้างอิง spring 3.0.x เพื่อทำความเข้าใจคำอธิบายประกอบของ Spring Autowired: 3.9.2 @Autowired และ @Inject ฉันไม่สามารถเข้าใจตัวอย่างด้านล่าง เราต้องทำอะไรบางอย่างใน XML เพื่อให้มันใช้งานได้ ตัวอย่าง 1 public class SimpleMovieLister { private MovieFinder movieFinder; @Autowired public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } // ... } ตัวอย่าง 2 public class MovieRecommender { private MovieCatalog movieCatalog; private CustomerPreferenceDao customerPreferenceDao; @Autowired public …

17
ฉันจะฉีดค่าคุณสมบัติลงใน Spring Bean ซึ่งกำหนดค่าโดยใช้คำอธิบายประกอบได้อย่างไร
ฉันมีถั่วสปริงจำนวนหนึ่งซึ่งหยิบขึ้นมาจาก classpath ผ่านคำอธิบายประกอบเช่น @Repository("personDao") public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { // Implementation omitted } ในไฟล์ Spring XML มีการกำหนดPropertyPlaceholderConfigurer : <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="/WEB-INF/app.properties" /> </bean> ฉันต้องการฉีดคุณสมบัติอย่างใดอย่างหนึ่งจาก app.properites ลงในถั่วที่แสดงด้านบน ฉันไม่สามารถทำอะไรได้อย่างง่ายๆ <bean class="com.example.PersonDaoImpl"> <property name="maxResults" value="${results.max}"/> </bean> เนื่องจาก PersonDaoImpl ไม่มีคุณสมบัติในไฟล์ Spring XML (ถูกดึงจาก classpath ผ่านคำอธิบายประกอบ) ฉันได้เท่าที่ต่อไปนี้: @Repository("personDao") public …

30
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
ฉันรวมสิ่งเหล่านี้ไว้ในBuild Path : libs ฤดูใบไม้ผลิทั้งหมด Apache Tomcat 7.0 library โครงการยังคงล้มเหลวระหว่างการเริ่มต้น: SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) 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) Jun 2, 2011 11:07:38 …

17
เมื่อใช้ Spring Security วิธีที่เหมาะสมในการรับข้อมูลชื่อผู้ใช้ปัจจุบัน (เช่น SecurityContext) ในถั่วคืออะไร
ฉันมีเว็บแอพ Spring MVC ซึ่งใช้ Spring Security ฉันต้องการทราบชื่อผู้ใช้ของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน ฉันใช้ข้อมูลโค้ดที่ระบุด้านล่าง นี่เป็นวิธีที่ยอมรับหรือไม่ ฉันไม่ชอบการเรียกใช้วิธีการคงที่ภายในตัวควบคุมนี้ - ที่เอาชนะวัตถุประสงค์ทั้งหมดของฤดูใบไม้ผลิ IMHO มีวิธีในการกำหนดค่าแอพเพื่อให้มี SecurityContext ปัจจุบันหรือการตรวจสอบความถูกต้องปัจจุบันถูกฉีดแทนหรือไม่? @RequestMapping(method = RequestMethod.GET) public ModelAndView showResults(final HttpServletRequest request...) { final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName(); ... }

7
วิธีใช้ OrderBy กับ findAll ใน Spring Data
ฉันกำลังใช้ข้อมูลฤดูใบไม้ผลิและดูเหมือน DAO ของฉัน public interface StudentDAO extends JpaRepository<StudentEntity, Integer> { public findAllOrderByIdAsc(); // I want to use some thing like this } ในโค้ดด้านบนบรรทัดแสดงความคิดเห็นแสดงเจตนาของฉัน spring Data สามารถใช้ฟังก์ชั่น inbuilt เพื่อใช้วิธีการดังกล่าวเพื่อค้นหาระเบียนทั้งหมดในบางคอลัมน์ด้วย ASC / DESC ได้หรือไม่?

23
ฉีด Mockito mocks ลงใน Spring bean
ฉันต้องการฉีดวัตถุจำลอง Mockito ลงในถั่ว Spring (3+) เพื่อวัตถุประสงค์ในการทดสอบหน่วยกับ JUnit ขณะนี้การพึ่งพาถั่วของฉันถูกฉีดโดยใช้@Autowiredคำอธิบายประกอบในฟิลด์สมาชิกส่วนตัว ฉันได้พิจารณาการใช้ReflectionTestUtils.setFieldแต่อินสแตนซ์ bean ที่ฉันต้องการฉีดเป็นจริงพร็อกซีและดังนั้นจึงไม่ประกาศเขตข้อมูลสมาชิกส่วนตัวของคลาสเป้าหมาย ฉันไม่ต้องการสร้าง setter สาธารณะเพื่อการพึ่งพาเนื่องจากฉันจะทำการปรับเปลี่ยนอินเตอร์เฟสของฉันอย่างหมดจดเพื่อวัตถุประสงค์ในการทดสอบ ฉันได้ทำตามคำแนะนำของชุมชน Spring แล้ว แต่การเยาะเย้ยไม่ได้เกิดขึ้นและการเดินสายอัตโนมัติล้มเหลว: <bean id="dao" class="org.mockito.Mockito" factory-method="mock"> <constructor-arg value="com.package.Dao" /> </bean> ข้อผิดพลาดที่ฉันพบในขณะนี้มีดังนี้: ... Caused by: org...NoSuchBeanDefinitionException: No matching bean of type [com.package.Dao] found for dependency: expected at least 1 bean which qualifies as autowire candidate …

14
ทำไม ApplicationContext.getBean ของสปริงจึงถือว่าไม่ดี
ฉันถามคำถามทั่วไปเกี่ยวกับ Spring: Auto Spring Beansและมีหลายคนตอบว่าApplicationContext.getBean()ควรหลีกเลี่ยงการเรียกของ Spring ให้มากที่สุด ทำไมถึงเป็นอย่างนั้น? ฉันจะเข้าใช้งาน beans ที่ฉันกำหนดค่า Spring เพื่อสร้างได้อย่างไร ฉันใช้ฤดูใบไม้ผลิในโปรแกรมประยุกต์ที่ไม่ใช่เว็บและได้วางแผนเกี่ยวกับการเข้าถึงที่ใช้ร่วมกันApplicationContextวัตถุตามที่อธิบาย LiorH การแก้ไข ฉันยอมรับคำตอบด้านล่าง แต่มาร์ตินฟาวเลอร์เป็นอีกทางเลือกหนึ่งที่กล่าวถึงข้อดีของการพึ่งพาการฉีดเทียบกับการใช้ตัวระบุบริการ (ซึ่งเป็นหลักเหมือนกับการโทรด้วยการห่อหุ้มApplicationContext.getBean()) ในส่วนของ Fowler กล่าวว่า " ด้วย service locator คลาสแอปพลิเคชันจะขอให้มัน [บริการ] อย่างชัดเจนโดยข้อความถึง locator ด้วยการฉีดไม่มีการร้องขอที่ชัดเจนบริการจะปรากฏในคลาสแอปพลิเคชัน - ดังนั้นการควบคุม การกลับกันของการควบคุมเป็นคุณสมบัติทั่วไปของกรอบงาน แต่เป็นสิ่งที่เกิดขึ้นในราคามันมีแนวโน้มที่จะเข้าใจและนำไปสู่ปัญหาเมื่อคุณพยายามที่จะทำการดีบั๊กดังนั้นโดยรวมแล้วฉันชอบที่จะหลีกเลี่ยงมัน ] ถ้าฉันต้องการมัน. นี้ไม่ได้บอกว่ามันเป็นสิ่งที่ไม่ดีเพียงแค่ว่าผมคิดว่าจะต้องมีการปรับตัวเองมากกว่าทางเลือกที่ตรงไปตรงมามากขึ้น. "
270 java  spring 

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