转载

SpringBoot和Spring区别?

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包到我们项目:

SpringBoot和Spring区别?

依赖关系可分为:

  • 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

原文  https://www.jdon.com/springboot/springboot-vs-spring.html
正文到此结束
Loading...