Je développe un projet qui n'est pas une botte de printemps, mais aussi un mvc de printemps. Je veux dire que je n'ai pas cette classe par exemple dans mon projet:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
J'ai ces trois classes pour le fichier de configuration de spring mvc:
@Import(WebSocketConfig.class)
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "......")
public class MainConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/Content/**")
.addResourceLocations("/Content/");
registry.addResourceHandler("/Scripts/**")
.addResourceLocations("/Scripts/");
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver
= new InternalResourceViewResolver();
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
Seconde:
public class MainInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
public static HashMap<String, String> response_code = new HashMap<String, String>();
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { MainConfiguration.class,
WebSocketConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
Security.addProvider(new BouncyCastleProvider());
servletContext.addListener(new MainContextListener());
System.out.println("MainInitializer.onStartup()");
}}
Troisième,
public class MainContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Context Initialized");
Security.addProvider(new BouncyCastleProvider());
}
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("Shutting down!");
}
}
Il y a un contrôleur et un fichier jsp et je l'ai configuré pour fonctionner sur le serveur Web Tomcat. Ce qui est étrange pour moi, c'est que lorsque j'ajoute cet extrait de code à mon pom, index.jsp apparaît dans le navigateur exactement, mais lorsque je le supprime. , cela donne 404 URL non trouvée pour mon contrôleur. pourquoi mon projet n'est-il pas un projet de démarrage du printemps a-t-il besoin d'un parent de démarrage du démarrage du printemps? Je pensais que le code ci-dessous est lié à la botte de printemps et puisque mon projet n’est pas une botte de printemps mais une mvc de printemps, n’en a pas besoin. mais il y a un problème sans que ce code soit ajouté dans pom:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
Il fournit un emplacement pour la configuration commune pour CHILD POM
s. par exemple.
Dependencies
& Properties
Pour e.g.
Voici la configuration POM parent 1.4.2.RELEASE
spring-boot-dependencies
qui est le parent de spring-boot-starter-parent
<properties>
<activemq.version>5.13.4</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine.version>1.9.44</appengine.version>
<artemis.version>1.3.0</artemis.version>
<aspectj.version>1.8.9</aspectj.version>
<assertj.version>2.5.0</assertj.version>
<atomikos.version>3.9.3</atomikos.version>
<bitronix.version>2.1.4</bitronix.version>
<caffeine.version>2.3.4</caffeine.version>
propriétés communes pour child POM
s
<dependencyManagement>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<type>test-jar</type>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
dépendances communes pour les enfants
Spring Boot fournit un certain nombre de «démarreurs» qui vous permettent d’ajouter des fichiers JAR à votre chemin de classe. Par ex. Spring-Boot-Starter-Security, Spring-Boot-Starter-Web, etc. Le "Spring-Boot-Starter-Parent" est un démarreur spécial qui fournit des valeurs par défaut utiles de Maven, c.-à-d. qu'il ajoute automatiquement tous les bocaux requis, etc. Il fournit également une section de gestion des dépendances afin que vous puissiez omettre les balises de version pour les dépendances que vous utilisez dans pom.xml. Par ex. Supposons que vous souhaitiez créer une application Web avec Spring Boot et que vous deviez ajouter ce qui suit.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Notez maintenant que cette balise est omise. Donc, finalement, le "parent-démarreur-printemps-démarrage" ajoute tellement de choses par défaut que nous n’avons pas à nous soucier de ces choses.
Si vous pouvez fournir plus d'informations, comme l'intégralité de votre pompon, nous pouvons chercher à comprendre et à vous aider davantage.
D'autre part, le parent parent pom spring-boot-starter-parent contient les dépendances complètes (mvc, cache, jpa) et les propriétés communes afin de maintenir les versions de dépendances dans une cohérence cohérente, à utiliser dans votre projet ou/et sous-modules.
En principe, vous pouvez ajouter des entrées dans votre fichier pom.xml en fonction de vos besoins (Web, jpa, batch, etc.). Pour votre exemple, vous pouvez simplement ajouter un démarreur mvc à votre fichier pom.xml sans ajouter d'autres dépendances. pom.xml peut juste être comme ça:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<Java.version>1.8</Java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>