国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot 框架介紹和使用

Zack / 1110人閱讀

摘要:使用還是,根據(jù)個人喜好即可。如果錯誤頁面也需要使用模板引擎動態(tài)生成,那么放在下面的路徑。數(shù)據(jù)庫自動配置嵌入式數(shù)據(jù)庫如果類路徑中包含或的相應(yīng)包,那么就會自動配置這些嵌入式數(shù)據(jù)庫的實例和數(shù)據(jù)源。

本文參考自Spring Boot文檔。

Spring Boot 簡介

Spring框架功能很強大,但是就算是一個很簡單的項目,我們也要配置很多東西。因此就有了Spring Boot框架,它的作用很簡單,就是幫我們自動配置。Spring Boot框架的核心就是自動配置,只要存在相應(yīng)的jar包,Spring就幫我們自動配置。如果默認配置不能滿足需求,我們還可以替換掉自動配置類,使用我們自己的配置。另外,Spring Boot還集成了嵌入式的Web服務(wù)器,系統(tǒng)監(jiān)控等很多有用的功,讓我們快速構(gòu)建企業(yè)及應(yīng)用程序。

創(chuàng)建項目 創(chuàng)建項目

創(chuàng)建項目很簡單。如果使用STS的話,新建Spring Starter項目即可。如果使用IDEA的話,新建Spring Initializer項目。如果不想使用IDE的話,從start.spring.io創(chuàng)建項目也可以。例如下面就是一個Spring Boot項目的build.gradle文件,是我用IDEA創(chuàng)建的項目。由于我是用了最新的快照版本,因此這里的倉庫還多了兩個Spring的快找倉庫,可以直接無視。(因為1.5的穩(wěn)定版中Thymeleaf的支持才到2,為了使用最新Thymeleaf3,只能使用最新的快照版。)

我們可以看到Spring Boot和一般的項目差不多,只不過多應(yīng)用了Spring Boot插件,它會讓我們更方便的運行Spring。另外在項目中沒有其他依賴的引用,只引用了Spring Boot Starter依賴,這些依賴會將可能會使用到的依賴幫我們引用。例如spring-boot-starter-test會引用JUnit、AssertJ等一些測試框架,我們不用再引用了。這極大地方便了我們的開發(fā)。而且這些依賴不需要指定具體版本,具體的版本由Spring幫我們決定。關(guān)于詳細的Starter項目和具體jar包的版本號,參考13.5. Starters和F. Dependency versions。

buildscript {
    ext {
        springBootVersion = "2.0.0.BUILD-SNAPSHOT"
    }
    repositories {
        mavenCentral()
        maven { url "https://repo.spring.io/snapshot" }
        maven { url "https://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "org.springframework.boot"

jar {
    baseName = "spring-boot-sample"
    version = "0.0.1-SNAPSHOT"
}

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}


dependencies {
    compile("org.springframework.boot:spring-boot-starter-aop")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    compile("org.springframework.boot:spring-boot-starter-web")
    runtime("org.springframework.boot:spring-boot-devtools")
    runtime("org.hsqldb:hsqldb")
    runtime("mysql:mysql-connector-java")
    compileOnly("org.projectlombok:lombok")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}
項目格式

項目格式類似下圖,和一般的Maven或者Gradle項目類似,只不過多了點東西。資源文件夾下static文件夾用來存放web程序的靜態(tài)資源,例如圖片、css、js等。template文件夾存放web程序的視圖模板,html等需要渲染的模板文件就放在這里。application.properties文件很重要,它是Spring Boot項目的全局配置文件。以往我們需要編寫層級XML配置文件,現(xiàn)在只需要在這里使用key=value方式即可指定這些屬性。默認的模板還為我們添加了兩個類。一個在main下,是Spring Boot項目的運行類,另一個在test下,是測試類。

運行類的代碼如下。它是一個簡單的類,包含了主方法,而且類上使用了@SpringBootApplication注解。這是一個慣用注解,它會幫我們啟用自動配置等特性。

@SpringBootApplication
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSampleApplication.class, args);
    }
}

如果看一下SpringBootApplication的源代碼,類似下面這樣。可以看到,SpringBootApplication的功能是通過幾個注解實現(xiàn)的。EnableAutoConfiguration注解啟用了自動配置功能。ComponentScan注解會掃描該類所在的包和子包。所以Spring推薦我們將這個運行類放到項目的根包下,以便我們不需要任何配置即可掃描到所有配置類。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
        @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

Spring Boot項目更喜歡Java配置方式。因此從這里開始,所有的Spring配置都是用Java方式配置。當然如果你還想使用XML配置文件也可以,新建一個空的配置類,然后添加@ImportResource注解并傳遞要使用的XML文件路徑即可。

運行項目

如果使用Maven的話,運行下面的命令。

mvn spring-boot:run

如果使用Gradle的話,使用下面的命令。

gradle bootRun

然后就會顯示類似下面的輸出,后面會跟一大堆日志信息。如果是命令行程序的話,日志信息之后就會顯示程序的運行結(jié)果了。如果是Web程序的話,默認情況下會使用內(nèi)嵌的Tomcat來運行。我們使用localhost:8080來訪問即可。

  .   ____          _            __ _ _
 / / ___"_ __ _ _(_)_ __  __ _    
( ( )\___ | "_ | "_| | "_ / _` |    
 /  ___)| |_)| | | | | || (_| |  ) ) ) )
  "  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.0.0.BUILD-SNAPSHOT)

這個日志可以是彩色的。如果你的輸出不是彩色的,可以在application.properties文件中添加下面一句。

spring.output.ansi.enabled=always
項目配置 自定義 SpringApplication

前面我們看到了SpringBoot項目的啟動類是這樣的。

@SpringBootApplication()
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSampleApplication.class, args);
    }
}

其實,我們可以自定義它的各種屬性。這時候需要創(chuàng)建SpringApplication對象并設(shè)置它的各種屬性。比方說下面不顯示Banner。還有很多配置和用法請查閱官方文檔。

@SpringBootApplication()
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(SpringBootSampleApplication.class);
        application.setBannerMode(Banner.Mode.OFF);
        application.run(args);
    }
}
事件和監(jiān)聽器

如果有更高級的需求可以使用監(jiān)聽器來管理Spring Boot程序的各個生命周期。監(jiān)聽器需要實現(xiàn)org.springframework.context.ApplicationListener接口。

public class MyAppListener implements ApplicationListener {


    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        System.out.println("應(yīng)用程序準備就緒");
    }
}

在監(jiān)聽器中可以設(shè)置下面幾種事件。

ApplicationStartingEvent

ApplicationEnvironmentPreparedEvent

ApplicationPreparedEvent

ApplicationReadyEvent

ApplicationFailedEvent

之后,把監(jiān)聽器添加到Spring程序中。

@SpringBootApplication()
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(SpringBootSampleApplication.class);
        application.setBannerMode(Banner.Mode.OFF);
        application.addListeners(new MyAppListener());
        application.run(args);
    }
}
Profiles

在Spring Boot中Profiles更簡單了。我們使用application-{profile}.properties格式來區(qū)分不同的Profile,例如一個測試profile(application-test.properties),一個生產(chǎn)環(huán)境profile(application-product.properties)。

定義好多個Profiles之后,還需要在標準的application.properties中列出和啟用這些Profiles。列出使用spring.profiles.include,激活其中的一個使用spring.profiles.active

spring.output.ansi.enabled=always
spring.thymeleaf.cache=false
spring.profiles.include[0]=test
spring.profiles.include[1]=product
spring.profiles.active[0]=test
使用YAML

YAML也是一種配置文件格式,比方說上面的properties,就可以改寫為下面這樣的YAML文件(application.yaml)。

spring:
  output:
    ansi:
      enabled: always
  thymeleaf:
    cache: false
  profiles:
    include:
    - product
    - test
    active: test

如果需要多個Profile,YAML只需要一個文件即可,profiles之間使用---分隔開。

server:
    address: 192.168.1.100
---
spring:
    profiles: development
server:
    address: 127.0.0.1
---
spring:
    profiles: production
server:
    address: 192.168.1.120

使用Properties還是YAML,根據(jù)個人喜好即可。

自動配置 修改自動配置

Spring Boot的核心就是自動配置,它為幾乎所有的Spring組件都提供了相應(yīng)的自動配置類,而且默認是打開的。所以只要相關(guān)的jar文件存在,這些自動配置就會被使用。其中有些配置屬于必配的(例如Web模板),自動配置會為我們省下不少時間;有些配置(例如數(shù)據(jù)源)則往往需要我們修改。Spring的自動配置是非侵入式的,所以如果我們聲明了自己的數(shù)據(jù)源,那么Spring自動配置的嵌入式數(shù)據(jù)源就會取消。

當然如果想要關(guān)閉某些自動配置也是可以的。如果你有自己的主配置類,手動在上排除某些自動配置類即可。

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

如果我們使用了SpringBootApplication注解,那么上面這種方式需要修改一下。SpringBootApplication注解提供了幾個屬性,可以控制排除的自動配置和組件搜索的路徑。

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSampleApplication.class, args);
    }
}

另外還可以直接修改項目的屬性。我們可以編輯application.properties文件,在其中添加spring.autoconfigure.exclude屬性并指定要排除的類即可。

Spring的自動配置類一般在org.springframework.boot.autoconfigure包下,如果我們需要查看當前使用了多少個自動配置類,可以在運行程序的時候添加--debug標志,這樣Spring會打印額外的調(diào)試信息。如果需要詳細的自動配置類的列表,可以參考Spring Boot文檔 附錄C. Auto-configuration classes。

Spring Web MVC自動配置 自動配置

MVC自動配置會啟用以下功能。

ContentNegotiatingViewResolverBeanNameViewResolver beans.

靜態(tài)資源和WebJars的支持.

自動注冊 Converter, GenericConverter, Formatter beans.

HttpMessageConverters 的支持.

自動注冊MessageCodesResolver.

靜態(tài)index.html的支持.

自定義Favicon(瀏覽器頁面的小圖標) 支持.

自動使用ConfigurableWebBindingInitializer bean.

自動注冊指的是,只需要在Spring中注冊相應(yīng)類型的Bean。Spring Web MVC會自動識別和使用這些Bean。例如,我們要添加新的HttpMessageConverter,只需要向下面這樣。

@Configuration
public class MyConfiguration {

    @Bean
    public HttpMessageConverters customConverters() {
        HttpMessageConverter additional = ...
        HttpMessageConverter another = ...
        return new HttpMessageConverters(additional, another);
    }

}
靜態(tài)資源

靜態(tài)資源默認放在resources文件夾的/static (或 /public/resources/META-INF/resources下面。如果需要配置位置的話,在屬性文件中添加spring.mvc.static-path-pattern=/resources/**

如果需要靜態(tài)主頁,直接在resources/static/下放入一個index.html即可。

favicon.ico

如果需要配置自己的favicon.ico,只需要將自己的favicon.ico直接放到resources文件夾下即可。

視圖模板

Spring會對Thymeleaf、Freemarker、Groovy和mustache四種模板進行自動配置。默認的模板路徑為resources/templates

錯誤處理

錯誤處理和一般的Spring Web MVC類似,使用@ControllerAdvice

自定義錯誤頁面放在下面的路徑。

src/
 +- main/
     +- java/
     |   + 
     +- resources/
         +- public/
             +- error/
             |   +- 404.html
             +- 

如果錯誤頁面也需要使用模板引擎動態(tài)生成,那么放在下面的路徑。

src/
 +- main/
     +- java/
     |   + 
     +- resources/
         +- templates/
             +- error/
             |   +- 5xx.ftl
             +- 
SQL數(shù)據(jù)庫自動配置 嵌入式數(shù)據(jù)庫

如果類路徑中包含HSQL、Derby或H2的相應(yīng)jar包,那么Spring就會自動配置這些嵌入式數(shù)據(jù)庫的實例和數(shù)據(jù)源。它們會將數(shù)據(jù)保存在內(nèi)存中,當程序結(jié)束之后數(shù)據(jù)會丟失。這非常適合開發(fā)和測試。

在不同的測試中Spring默認會重用這些嵌入式數(shù)據(jù)庫。假如不同測試之間的數(shù)據(jù)不同,你可能希望每次測試都使用新的數(shù)據(jù)庫。這時候可以在屬性文件中指定spring.datasource.generate-unique-name=true

生產(chǎn)數(shù)據(jù)庫

Spring會自動選擇帶連接池的數(shù)據(jù)源,遵循以下規(guī)則:

如果存在tomcat-jdbc數(shù)據(jù)源,則使用它。

否則,如果存在HikariCP,則使用它。

如果前兩個都不存在,而存在DBCP2,則使用它。

這時候我們需要提供數(shù)據(jù)源的額外配置信息。

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
JdbcTemplate

JdbcTemplateNamedParameterJdbcTemplate會由上面的數(shù)據(jù)源自動配置。我們直接使用@Autowire注入到程序中即可。

JPA自動配置 實體類

JPA Entity類(標記了@Entity的類)默認在persistence.xml中配置。在Spring Boot中,@EnableAutoConfiguration@SpringBootApplication包下的實體類會被自動掃描到。如果希望自定義實體類的位置,可以使用@EntityScan注解,添加到配置類上即可。

Spring Data JPA

繼承了?Repository的接口會被自動掃描到,我們不需要做任何配置。如果需要配置,設(shè)置spring.jpa.*屬性。例如下面指定了數(shù)據(jù)的生成策略。

spring.jpa.hibernate.ddl-auto=update
H2的web控制臺

H2嵌入式數(shù)據(jù)庫提供了一個基于web界面的控制臺。這個控制臺也可以由Spring自動配置。當(1:存在H2相關(guān)jar包,2:當前程序是一個web程序,3:devtoos存在)的情況下,Spring便會自動配置H2控制臺。

web控制臺的訪問路徑默認為/h2-console。我們可以使用spring.h2.console.path屬性修改它。

如圖,這是一個完整的交互界面,我們可以方便的在這里處理數(shù)據(jù)。如果需要設(shè)置訪問控制權(quán)限,添加下面的屬性。

security.user.role

security.basic.authorize-mode

security.basic.enabled

如果不想使用該控制臺,可以使用spring.h2.console.enabled=false關(guān)閉它。在生產(chǎn)環(huán)境中記得把它關(guān)掉。

最后我要說一點,Spring Boot文檔包含了很多其他Spring項目的自動配置,這里不可能全寫完。所以如果需要詳細信息的話還是直接啃文檔吧。

其他配置 調(diào)試工具(devtools)

如果使用Maven,添加下面的依賴。


    
        org.springframework.boot
        spring-boot-devtools
        true
    

如果使用Gradle,添加下面的依賴。

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}

這樣就可以將調(diào)試工具添加到項目中。調(diào)試工具添加了熱更新、自動重啟等幾個非常有用的調(diào)試功能。自動重啟需要Spring檢測到類路徑上有更改,在Spring Tool Suite中,簡單的保存文件即可達到效果。如果在Intellij IDEA中,只能選擇Build Project。

輸出日志

Spring Boot默認使用Logback來打印日志。不過我們直接使用slf4j提供的接口就可以了。slf4j和Logback也都由Spring自動配置好了。我們只需要在屬性文件中設(shè)置日志級別即可。

logging.level.yitian.study=debug

然后在代碼中調(diào)用slf4j的日志接口并打印日志即可。

@Controller
public class MainController {
    private Logger logger = LoggerFactory.getLogger(MainController.class);

    @RequestMapping("/")
    public String index(@RequestParam(defaultValue = "茍") String name, Model model) {
        model.addAttribute("name", name);
        logger.debug("訪問了主頁");
        return "index";
    }
}

日志信息和Spring的輸出格式一樣。另外隨著日志級別的變化,日志的顏色也會在綠、黃和紅之間變化,非常方便。

2017-03-16 23:50:19.628  INFO 17220 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet "dispatcherServlet": initialization completed in 4 ms
2017-03-16 23:50:19.632 ERROR 17220 --- [nio-8080-exec-1] yitian.study.controller.MainController   : 訪問了主頁
自定義Banner

這個Banner也是可以定制的。在類路徑(也就是resource文件夾下)添加banner.txt,Banner就會使用你的文本。Banner甚至可以是一張圖片,支持gif、jpg、png等格式。Spring會將圖片轉(zhuǎn)換成字符形式。

Servlet容器

默認情況下Spring使用Tomcat作為嵌入式容器。

端口號

端口號使用server.port設(shè)置。如果希望在運行時隨機分配一個未使用的端口號,可以將端口號設(shè)置為0:server.port=0

使用Jetty

spring-boot-starter-web包默認使用Tomcat,如果我們希望使用Jetty,就需要排除Tomcat的包。使用Maven的話,這么做。


    org.springframework.boot
    spring-boot-starter-web
    
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
    


    org.springframework.boot
    spring-boot-starter-jetty

如果使用Gradle的話,這么做。

configurations {
    compile.exclude module: "spring-boot-starter-tomcat"
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:2.0.0.BUILD-SNAPSHOT")
    compile("org.springframework.boot:spring-boot-starter-jetty:2.0.0.BUILD-SNAPSHOT")
    // ...
}
響應(yīng)壓縮

使用server.compression.enabled=true啟用HTTP的響應(yīng)壓縮。默認情況下要壓縮的響應(yīng)體至少需要2048字節(jié),可以使用server.compression.min-response-size修改這個值。

打包和運行

Spring Boot項目默認打包為jar文件。我們可以使用Maven或Gradle的打包命令來打包項目。打包好之后,就可以和一般jar文件一樣,使用java命令來運行了。如果希望打包為war文件的話也可以,不過由于篇幅所限就不介紹了。直接看源文檔吧。

系統(tǒng)監(jiān)控(Actuator)

Actuator我沒理解怎么翻譯,所以憑我的感覺就叫做系統(tǒng)監(jiān)控吧。這些功能可以幫助我們監(jiān)控正在運行的Spring Boot項目。要啟用監(jiān)控功能,需要添加spring-boot-starter-actuator。使用Maven的話,添加下面的依賴。

    
        org.springframework.boot
        spring-boot-starter-actuator
    

如果使用Gradle的話,添加下面的依賴。

dependencies {
    compile("org.springframework.boot:spring-boot-starter-actuator")
}
端點(Endpoints)

每個端點就是一個監(jiān)控項。Spring包含了很多端點,詳細列表在這里47. Endpoints。除了health之外,其余端點都屬于敏感信息,在沒有設(shè)置Spring Security的情況下無法訪問。為了簡單的在本地訪問,我們可以設(shè)置management.security.enabled=false。注意該選項在生產(chǎn)環(huán)境中務(wù)必打開,保證服務(wù)器信息不會泄露。

端點的訪問路徑默認是/端點名,例如health的訪問路徑就是/health。比較有用的幾個端點是beans(列出當前所有已注冊的Spring Beans)、mappings(所有的控制器映射路徑)、trace(最近100個HTTP連接的信息)、health(服務(wù)器當前的運行狀態(tài)和磁盤剩余空間以及數(shù)據(jù)庫的運行狀態(tài))。還有一個有趣的端點是shutdown,當我們向/shutdown發(fā)送post請求時服務(wù)器就會關(guān)閉,不過該功能是默認關(guān)閉的。

端點可以在屬性文件中設(shè)置,每個端點敏感性和是否啟用都是可以定制的。

endpoints.beans.sensitive=false
endpoints.shutdown.enabled=true

端點的訪問也是可以定制的。

management.port=8081
management.address=127.0.0.1

好了,Spring Boot框架的介紹到此為止。我們已經(jīng)基本看到了Spring Boto的使用方法。當然官方文檔還有很多內(nèi)容這里沒有列出。這里也不可能完全列出來。如果需要更詳細的介紹還是直接看官方文檔吧。沒有比這個更全面的了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/66843.html

相關(guān)文章

  • [直播視頻] 《Java 微服務(wù)實踐 - Spring Boot 系列》限時折扣

    摘要:作為微服務(wù)的基礎(chǔ)設(shè)施之一,背靠強大的生態(tài)社區(qū),支撐技術(shù)體系。微服務(wù)實踐為系列講座,專題直播節(jié),時長高達小時,包括目前最流行技術(shù),深入源碼分析,授人以漁的方式,幫助初學者深入淺出地掌握,為高階從業(yè)人員拋磚引玉。 簡介 目前業(yè)界最流行的微服務(wù)架構(gòu)正在或者已被各種規(guī)模的互聯(lián)網(wǎng)公司廣泛接受和認可,業(yè)已成為互聯(lián)網(wǎng)開發(fā)人員必備技術(shù)。無論是互聯(lián)網(wǎng)、云計算還是大數(shù)據(jù),Java平臺已成為全棧的生態(tài)體系,...

    Enlightenment 評論0 收藏0
  • 四.Spring boot日志介紹

    摘要:不過官網(wǎng)推薦使用的方式,因為可以使用高級特性動態(tài)使用日志配置。測試控制臺輸出指定環(huán)境 Spring boot日志介紹 1.1 常用的日志框架分為接口庫和實現(xiàn)庫 showImg(https://segmentfault.com/img/bVbbaNk?w=443&h=367); 1.2 spring 的日志介紹 spring框架默認選擇的是JCL spring boot框架默認選擇的是...

    Towers 評論0 收藏0
  • Spring Boot 《一》開發(fā)一個“HelloWorld”的 web 應(yīng)用

    摘要:一概括,如果使用開發(fā)一個的應(yīng)用創(chuàng)建一個項目并且導(dǎo)入相關(guān)包。創(chuàng)建一個編寫一個控制類需要一個部署應(yīng)用的服務(wù)器如,特點設(shè)計目的是用來簡化新應(yīng)用的初始搭建以及開發(fā)過程。啟動器可以和位于同一個包下,或者位于的上一級包中,但是不能放到的平級以及子包下。 一,Spring Boot 介紹 Spring Boot不是一個新的框架,默認配置了多種框架使用方式,使用SpringBoot很容易創(chuàng)建一個獨立運...

    chaosx110 評論0 收藏0
  • Laravel Spring Boot 兩個框架比較創(chuàng)業(yè)篇(一:開發(fā)效率)

    摘要:小紅要以最低成本最快速度推出版本,投放市場,收集反饋,持續(xù)迭代。總結(jié)在技能掌握充足的情況下,個人感覺開發(fā)效率要略高于。 我個人是比較不喜歡去正兒八經(jīng)的比較兩個框架的,這樣沒有意義,不過欲善其事先利其器! 技術(shù)是相通的,但是在某個特定的領(lǐng)域的某個階段肯定有相對最適合的一個工具! 這里比較不是從技術(shù)角度比較,而是從公司技術(shù)選型考慮的,特別是初創(chuàng)的互聯(lián)網(wǎng)創(chuàng)業(yè)公司。沒辦法,誰讓互聯(lián)網(wǎng)公司離不開...

    tinna 評論0 收藏0

發(fā)表評論

0條評論

Zack

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<