日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是Spring Boot框架?什么是Spring框架?他們的目標是什么?他們產生的背景是怎樣的,兩者有什么區別,我們應該使用哪個框架進行開發,帶著這樣的疑問,我們開始今天的講解。

Spring框架和Spring Boot框架的區別

 

Spring框架背景

Spring框架是JAVA最受歡迎的應用程序開發框架之一。Spring的最佳功能是它具有依賴注入(DI)控制反轉(IOC), 這使我們能夠開發松耦合的應用程序。而且,松耦合的應用程序可以輕松地進行單元測試。 隔壁的php中的Laravel為什么大手歡迎,也是它實現了依賴注入、控制反轉的功能。

Spring框架和Spring Boot框架的區別

 

依賴注入

考慮下面的示例- MyController 要通過 MyService 來執行特定任務。因此,首先我們要獲取MyService的實例,我們將使用:

MyService service = new MyService();

現在,我們為創建了實例 MyService ,我們看到兩者緊密耦合。如果MyService 在的單元測試中 創建的模擬 MyController ,如何 MyController 使用該模擬?有點困難-是嗎?

@RestController
public class MyController {
 private MyService service = new MyService();
 @RequestMApping("/welcome")
 public String welcome() {
 return service.retrieveWelcomeMessage();
 }
}

 依賴注入的示例

僅通過兩個注釋,我們就可以MyService 輕松獲得實例,而實例之間 并不是緊密耦合的。Spring框架做了所有艱苦的工作,使事情變得更簡單。

  • @Component 在Spring 中只是簡單地用作需要在自己的BeanFactory(Factory模式的實現)中進行管理的bean。
  • @Autowired 在Spring 中僅用于習慣找到該特定類型的正確匹配并將其自動裝配。

因此,Spring框架將為其創建一個bean MyService 并將其自動連接到中 MyController。

在單元測試中,Spring框架可以將模擬MyService 自動關聯到 MyController 。

@Component
public class MyService {
 public String retrieveWelcomeMessage(){
 return "Welcome to InnovationM";
 }
}
@RestController
public class MyController {
 @Autowired
 private MyService service;
 
 @RequestMapping("/welcome")
 public String welcome() {
 return service.retrieveWelcomeMessage();
 }
}

Spring框架還有許多其他功能,以下是一些它比較流行的模塊:

  • Spring JDBC
  • Spring MVC
  • Spring AOP
  • Spring ORM
  • Spring JMS
  • Spring TEST
  • Spring(SpEL)

面向切面的編程(AOP)是Spring框架的另一個強項。面向對象編程中強調的是,而在AOP中,強調的是

例如,如果要在項目,日志記錄等中添加安全性,則可以僅使用AOP并將其作為跨領域的關注點,而不涉及主要業務邏輯。可以在方法調用之后,方法調用之前,方法返回之后或異常發生之后執行任何操作。

Spring框架沒有自己的ORM,但是它提供了與ORM的很好的集成,例如Hibernate,Apache iBATIS等。

簡而言之,我們可以說Spring框架提供了一種分離的方式來開發Web應用程序。借助Spring中的這些概念(例如Dispatcher Servlet,ModelAndView和View Resolver),Web應用程序開發變得容易。

Spring Boot背景

現在,如果您已經使用過Spring,請考慮一下在開發具有所有功能的成熟Spring應用程序時遇到的問題。設置Hibernate數據源,實體管理器,會話工廠和事務管理非常的復雜,并且要花費大量的時間。對于開發人員來說,使用帶有最少功能的Spring MVC建立基本項目可能就需要花費大量時間。

 <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>
<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/my-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時,我們必須配置諸如數據源,EntityManager等之類的東西。

<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解決辦法

  1. Spring Boot會完成所有使用的工作, 自動配置并且會處理應用程序所需的所有內部依賴關系-您所需要做的就是運行應用程序。如果Spring jar 在類路徑中,則Spring Boot將使用Dispatcher Servlet自動配置 。如果Hibernate jar 在類路徑中,它將自動配置到數據源 。Spring Boot為我們提供了一組預配置的Starter項目,這些項目將作為依賴項添加到我們的項目中。
  2. 在Web應用程序開發期間,我們將需要使用的jar,使用的jar版本以及如何將它們連接在一起。所有Web應用程序都具有類似的需求,例如Spring MVC,Jackson Databind,Hibernate core和Log4j(用于日志記錄)。因此,我們必須選擇所有這些jar的兼容版本。為了降低復雜性,Spring Boot引入了我們所謂的Spring Boot Starters。

Spring Web Project的依賴關系

Spring框架和Spring Boot框架的區別

 

<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>

Starters 是一組方便的依賴項,可以將其包含在Spring Boot應用程序中。對于使用Spring和Hibernate,我們只需要在項目中包括spring-boot-starter-data-jpa依賴項。

Spring Boot Starter Web依賴

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Spring Boot項目有很多軟件包。一旦添加了該啟動程序依賴項,Spring Boot Starter Web就會預先打包所有這些文件。作為開發人員,我們無需擔心這些依賴關系及其兼容版本。

Spring Boot Starter項目選項

這些是很少的入門項目,可幫助我們快速開發特定類型的應用程序。

  • 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框架的緩存支持
  • spring-boot-starter-data-rest:使用Spring Data REST公開簡單的REST服務
Spring框架和Spring Boot框架的區別

 

正是有了Spring Boot,讓我們告別了繁瑣的配置,可以更加快速專注地開發我們的web應用。

分享到:
標簽:框架 Spring
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定