内容简介:当我们使用Spring MVC时,我们需要配置组件扫描,调度程序servlet,视图解析器,Web jar(用于提供静态内容)等。下面的代码片段显示了Web.xml配置SpringMVC调度程序DispatchServlet的典型配置。当我们使用Hibernate / JPA时,我们需要配置数据源,实体管理器工厂,事务管理器:
Spring Boot和Spring区别
当我们使用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吗?
- 如果Hibernate jar在类路径上,自动配置数据源怎么样?
- 如果Spring MVC jar在类路径上,自动配置Dispatcher Servlet怎么样?
Spring Boot查看
- CLASSPATH类路径是否有可用的框架
- 应用程序的现有配置如何?
基于这些,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包到我们项目:
依赖关系可分为:
- Spring - core, beans, context, aop
- Web MVC - (Spring MVC)
- Jackson - for JSON Binding
- Validation - Hibernate Validator, Validation API
- 嵌入式Servlet容器 - Tomcat
- Logging - logback, slf4j
任何典型的Web应用程序都将使用所有这些依赖项。Spring Boot Starter Web预装了这些。作为开发人员,我不需要担心这些依赖项或它们的兼容版本。其他启动器还有
- spring-boot-starter-web-services - SOAP Web服务
- spring-boot-starter-web - Web和RESTful应用程序
- spring-boot-starter-test - 单元测试和集成测试
- spring-boot-starter-jdbc - 传统的JDBC
- spring-boot-starter-hateoas - 为您的服务添加HATEOAS功能
- spring-boot-starter-security - 使用Spring Security进行身份验证和授权
- spring-boot-starter-data-jpa - 带有Hibernate的Spring Data JPA
- spring-boot-starter-cache - 启用Spring Framework的缓存支持
- spring-boot-starter-data-rest - 使用Spring Data REST公开简单REST服务
- spring-boot-starter-actuator - 使用开箱即用的监控和跟踪等高级功能
- spring-boot-starter-undertow,spring-boot-starter-jetty,spring-boot-starter-tomcat - 选择您特定的嵌入式Servlet容器
- spring-boot-starter-logging - 使用logback进行日志记录
- spring-boot-starter-log4j2 - 使用Log4j2进行日志记录
下面我们看看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服务就更完整了。
Spring Boot
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。