当我们使用Spring MVC时,我们需要配置组件扫描,调度程序servlet,视图解析器,Web jar(用于提供静态内容)等。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/views/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <mvc:resources mapping="/webjars/**" location="/webjars/"/>
下面的代码片段显示了Web.xml配置SpringMVC调度程序DispatchServlet的典型配置。
<servlet> <servlet-name>dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/todo-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
当我们使用Hibernate / JPA时,我们需要配置数据源,实体管理器工厂,事务管理器:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${db.driver}" /> <property name="jdbcUrl" value="${db.url}" /> <property name="user" value="${db.username}" /> <property name="password" value="${db.password}" /> </bean> <jdbc:initialize-database data-source="dataSource"> <jdbc:script location="classpath:config/schema.sql" /> <jdbc:script location="classpath:config/data.sql" /> </jdbc:initialize-database> <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"> <property name="persistenceUnitName" value="hsql_pu" /> <property name="dataSource" ref="dataSource" /> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager"/>
Spring Boot带来了新思维过程,将spring mvc jar添加到应用程序中时,Spring能自动配置某些bean吗?
Spring Boot查看
基于这些,Spring Boot提供了默认基本配置。这叫做Auto Configuration。
假设我们要开发一个Web应用程序,需要哪些基础组件?
下面列出了我们在Spring MVC中经常需要使用的一些依赖项。这些包括Spring MVC,Jackson Databind(用于数据绑定),Hibernate-Validator(用于使用Java Validation API进行服务器端验证)和Log4j(用于日志记录)
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.2.RELEASE</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.0.2.Final</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
Spring Boot提供一种叫Starter启动器的概念,让你能够在 SpringBoot使用这些组件:
启动器是一组方便的依赖关系描述符,可以将其包含在应用程序中,从而可以获得你所需的所有Spring和相关技术的一站式服务,而无需通过学习示例代码并复制粘贴,然后再去搜索依赖描述符(也就是dependency里面的内容)。例如,如果您想开始使用Spring和JPA进行数据库访问,只需在项目中包含spring-boot-starter-data-jpa依赖项,就可以了。
如果您想开发Web应用程序或应用程序来公开REST服务,Spring Boot Start Web是首选:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
配置好这个启动器,Spring Boot会添加下面依赖项Jar包到我们项目:
依赖关系可分为:
任何典型的Web应用程序都将使用所有这些依赖项。Spring Boot Starter Web预装了这些。作为开发人员,我不需要担心这些依赖项或它们的兼容版本。其他启动器还有
下面我们看看Spring Boot如果实现本文开始Spring MVC的那些功能,包括JPA需要哪些步骤?
1. 我们在pom.xml中配置数据库和JPA:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
h2是一个内存数据库,然后我们希望通过JPA使用它,再配置一下JPA:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
2.编写代码:你声明一个接口类,注意是接口,不是普通类:
public interface ApplicantRepository extends JpaRepository<Applicant, Long> { }
这样,你就可以通过下面save命令保存数据到H2中。
applicantRepository.save(applicant);
基本上两步CRUD增删改查就全部搞定,当然再加上REST服务就更完整了。