Spring源碼系列(一)–詳細介紹bean組件

簡介

spring-bean 組件是 Spring IoC 的核心,我們可以使用它的 beanFactory 來獲取所需的對象,對象的實例化、屬性裝配和初始化等都可以交給 spring 來管理。

針對 spring-bean 組件,我計劃分成兩篇博客來講解。本文會詳細介紹這個組件,包括以下內容。下一篇再具體分析它的源碼。

  1. spring-bean 組件的相關概念:實例化、屬性裝配、初始化、bean、beanDefinition、beanFactory。
  2. bean 組件的使用:註冊bean、獲取bean、屬性裝配、處理器等。

項目環境說明

正文開始前,先介紹下示例代碼使用的環境等。

工程環境

JDK:1.8.0_231

maven:3.6.1

IDE:Spring Tool Suites4 for Eclipse 4.12

Spring:5.2.6.RELEASE

依賴引入

除了引入 spring,這裏還額外引入了日誌和單元測試。

    <properties>
        <spring.version>5.2.6.RELEASE</spring.version>
    </properties>
    
    <dependencies>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
		<!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- logback -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.28</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <type>jar</type>
        </dependency>
    </dependencies>

幾個重要概念

實例化、屬性裝配和初始化

在 spring-bean 組件的設計中,這三個詞完整、有序地描述了生成一個新對象的整個流程,是非常重要的理論基礎。它們的具體含義如下:

  1. 實例化:創建出一個新對象。
  2. 屬性裝配:給對象的成員屬性賦值。
  3. 初始化:調用對象的初始化方法。

下面使用一段代碼來簡單演示下這個流程。

public class UserService implements IUserService {
    
    private UserDao userDao;
    
    
    public UserService() {
        super();
        System.err.println("UserService構造方法被調用");
        System.err.println("        ||");
        System.err.println("        \\/");
    }
    
    public void init() {
        System.err.println("UserService的init方法被調用");
        System.err.println("        ||");
        System.err.println("        \\/");
    }
    
    
    public UserDao getUserDao() {
        return userDao;
    }
    
    public void setUserDao(UserDao userDao) {
        System.err.println("UserService的屬性裝配中");
        System.err.println("        ||");
        System.err.println("        \\/");
        this.userDao = userDao;
    }
    
}

如果我們將這個 bean 交給 spring 管理,獲取 bean 時會在控制台打印以下內容:

什麼是bean

按照官方的說法, bean 是一個由 Spring IoC 容器實例化、組裝和管理的對象。我認為,這種表述是錯誤的,通過registerSingleton方式註冊的 bean,它就不是由 Spring IoC 容器實例化、組裝,所以,更準確的表述應該是這樣:

某個類的對象、FactoryBean 對象、描述對象或 FactoryBean 描述對象,被註冊到了 Spring IoC 容器,這時通過 Spring IoC 容器獲取的這個類的對象就是 bean。

舉個例子,使用了 Spring 的項目中, Controller 對象、Service 對象、DAO 對象等都屬於 bean。

至於什麼是 IoC 容器,在 spring-bean 組件中,我認為,beanFactory 就屬於 IoC 容器。

什麼是beanFactory

從客戶端來看,一個完整的 beanFactory 工廠包含以下基本功能:

  1. 註冊別名。對應下圖的AliasRegistry接口。
  2. 註冊單例對象。對應下圖的SingletonBeanRegistry接口。
  3. 註冊BeanDefinition對象。對應下圖的BeanDefinitionRegistry接口。
  4. 獲取 bean。對應下圖的BeanFactory接口。

在 spring-bean 組件中,DefaultListableBeanFactory就是一個完整的 beanFactory 工廠,也可以說是一個 IoC 容器。接下來的例子將直接使用它來作為 beanFactory。

至於其他的接口,這裏也補充說明下。HierarchicalBeanFactory用於提供父子工廠的支持,ConfigurableBeanFactory用於提供配置 beanFactory 的支持,ListableBeanFactory用於提供批量獲取 bean 的支持(不包含父工廠的 bean),AutowireCapableBeanFactory用於提供實例化、屬性裝配、初始化等一系列管理 bean 生命周期的支持。

什麼是beanDefinition

beanDefinaition 是一個描述對象,用來描述 bean 的實例化、初始化等信息。

在 spring-bean 組件中,beanDefinaition主要包含以下四種:

  1. RootBeanDefinition:beanFactory 中最終用於 createBean 的 beanDefinaition,不允許添加 parentName。在 BeanFactory 中以下三種實現類都會被包裝成RootBeanDefinition用於 createBean。
  2. ChildBeanDefinition:必須設置 parentName 的 beanDefinaition。當某個 Bean 的描述對象和另外一個的差不多時,我們可以直接定義一個ChildBeanDefinition,並設置它的 parentName 為另外一個的 beanName,這樣就不用重新設置一份。
  3. GenericBeanDefinition:通用的 beanDefinaition,可以設置 parentName,也可以不用設置。
  4. AnnotatedGenericBeanDefinition:在GenericBeanDefinition基礎上增加暴露註解數據的方法。

spring-bean 組件提供了BeanDefinitionBuilder用於創建 beanDefinaition,下面的例子會頻繁使用到。

使用例子

入門–簡單地註冊和獲取bean

下面通過一個入門例子來介紹註冊和獲取 bean 的過程。

    @Test
    public void testBase() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        
        // 創建BeanDefinition對象
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        
        // 註冊Bean
        beanFactory.registerBeanDefinition("userService", rootBeanDefinition);
        
        // 獲取Bean
        IUserService userService = (IUserService)beanFactory.getBean("userService");
        System.err.println(userService.get("userId"));
    }

兩種註冊bean的方式

beanFactory 除了支持註冊 beanDefinition,還允許直接註冊 bean 實例,如下。和前者相比,後者的實例化、屬性裝配和初始化都沒有交給 spring 管理。

    @Test
    public void testRegisterWays() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        
        // 註冊Bean-- BeanDefinition方式
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        beanFactory.registerBeanDefinition("userService", rootBeanDefinition);
        
        // 註冊Bean-- Bean實例方式
        beanFactory.registerSingleton("userService2", new UserService());
        
        // 獲取Bean
        IUserService userService = (IUserService)beanFactory.getBean("userService");
        System.err.println(userService.get("userId"));
        IUserService userService2 = (IUserService)beanFactory.getBean("userService2");
        System.err.println(userService2.get("userId"));
    }

當然,這種方式僅支持單例 bean 的註冊,多例的就沒辦法了。

註冊多例bean

默認情況下,我們從 beanFactory 獲取到的 bean 都是單例的,即每次 getBean 獲取到的都是同一個對象,實際項目中,有時我們需要獲取到多例的 bean,這個時候就可以通過設置 beanDefinition 的 scope 來處理。如下:

    @Test
    public void testScope() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        
        // 註冊Bean-- BeanDefinition方式
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        rootBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        beanFactory.registerBeanDefinition("userService", rootBeanDefinition);
        
        // 獲取Bean--通過BeanType
        IUserService userService1 = beanFactory.getBean(IUserService.class);
        IUserService userService2 = beanFactory.getBean(IUserService.class);
        assertNotEquals(userService1, userService2);
    }

多種獲取bean的方式

beanFactory 提供了多種方式來獲取 bean 實例,如下。如果同時使用 beanName 和 beanType,獲取到指定 beanName 的 bean 後會進行類型檢查和類型類型,如果都不通過,將會報錯。

    @Test
    public void testGetBeanWays() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        
        // 創建BeanDefinition對象
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        
        // 註冊Bean
        beanFactory.registerBeanDefinition("userService", rootBeanDefinition);
        
        // 獲取Bean--通過BeanName
        IUserService userService = (IUserService)beanFactory.getBean("userService");
        System.err.println(userService.get("userId"));
        // 獲取Bean--通過BeanType
        IUserService userService2 = beanFactory.getBean(IUserService.class);
        System.err.println(userService2.get("userId"));
        // 獲取Bean--通過BeanName+BeanType的方式
        IUserService userService3 = beanFactory.getBean("userService", IUserService.class);
        System.err.println(userService3.get("userId"));
    }

不同形式的beanName

通過 name 獲取 bean,這個 name 包含以下三種形式:

  1. beanName,即註冊 bean 時用的 beanName。這是使用最多的形式,需要注意一點,如果 beanName 對應的 bean 是FactoryBean,並不會返回FactoryBean的實例,而是會返回FactoryBean.getObject方法的返回結果。
  2. alias,即我們通過SimpleAliasRegistry.registerAlias(name, alias)方法註冊到 beanFactory 的別名。這時,需要將 name 解析為 alias 對應的 beanName 來獲取 bean。
  3. ‘&’ + factorybeanName,這時為了獲取FactoryBean的一種特殊格式。
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // 註冊Bean--註冊的是一個 FactoryBean
        UserServiceFactoryBean userServiceFactoryBean = new UserServiceFactoryBean();
        beanFactory.registerSingleton("userServiceFactoryBean", userServiceFactoryBean);

        // 註冊BeanName的別名
        beanFactory.registerAlias("userServiceFactoryBean", "userServiceAlias01");

        // 通過BeanName獲取
        assertEquals(userServiceFactoryBean.getObject(), beanFactory.getBean("userServiceFactoryBean"));

        // 通過別名獲取
        assertEquals(userServiceFactoryBean.getObject(), beanFactory.getBean("userServiceAlias01"));

        // 通過&+FactoryBeanName的方式
        assertEquals(userServiceFactoryBean, beanFactory.getBean("&userServiceFactoryBean"));

bean衝突的處理

通過 beanType 的方式獲取 bean,如果存在多個同類型的 bean且無法確定最優先的那一個,就會報錯。

    @Test
    public void testPrimary() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); 
        
        // 創建BeanDefinition對象
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(User.class).getBeanDefinition();
        
        // 註冊Bean
        beanFactory.registerBeanDefinition("UserRegisterBeanDefinition", rootBeanDefinition);
        beanFactory.registerSingleton("UserRegisterSingleton", new User("zzs002", 19));
        beanFactory.registerSingleton("UserRegisterSingleton2", new User("zzs002", 18));
        
        // 獲取Bean--通過BeanType
        User user = beanFactory.getBean(User.class);
        System.err.println(user);
    }

運行以上方法,將出現 NoUniqueBeanDefinitionException 的異常。

針對上面的這種問題,spring 的處理方法如下:

  1. 檢查是否存在唯一一個通過registerBeanDefinition且isPrimary = true的(存在多個會報錯),存在的話將它作為匹配到的唯一 beanName;
  2. 通過我們註冊的OrderComparator來確定優先值最小的作為唯一 beanName。注意,通過registerSingleton註冊的和通過registerBeanDefinition註冊的,比較的對象是不一樣的,前者比較的對象是 bean 實例,後者比較的對象是 bean 類型,另外,這種方法最好不要存在相同優先級的 bean。

所以,為了解決這種衝突,可以設置BeanDefinition對象的 isPrimary = true,或者為 beanFactory 設置OrderComparator,代碼如下:

    @Test
    public void testPrimary() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // 為BeanFactory設置比較器
        beanFactory.setDependencyComparator(new OrderComparator() {

            @Override
            public Integer getPriority(Object obj) {
                return obj.hashCode();
            }
        });

        // 創建BeanDefinition對象
        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(User.class).getBeanDefinition();
        // rootBeanDefinition.setPrimary(true); // 設置BeanDefinition對象為isPrimary

        // 註冊Bean
        beanFactory.registerBeanDefinition("userRegisterBeanDefinition", rootBeanDefinition);
        beanFactory.registerSingleton("userRegisterSingleton", new User("zzs002", 19));
        beanFactory.registerSingleton("userRegisterSingleton2", new User("zzs003", 18));

        // 獲取Bean--通過BeanType
        User user = beanFactory.getBean(User.class);
        System.err.println(user);
    }

使用TypeConverter獲取自定義類型的對象

當我們使用 beanType 來獲取 bean 時,如果獲取到的 bean 不是指定的類型,這時,不會立即報錯,beanFactory 會嘗試使用我們註冊的TypeConverter來強制轉換。而這個類型轉換器我們可以自定義設置,如下。

    @Test
    public void testTypeConverter() {
        
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        // 註冊類型轉換器
        beanFactory.setTypeConverter(new TypeConverterSupport() {
            @SuppressWarnings("unchecked")
            @Override
            public <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType,
                    @Nullable TypeDescriptor typeDescriptor) throws TypeMismatchException {
                // 將User轉換為UserVO
                if(UserVO.class.equals(requiredType) && User.class.isInstance(value)) {
                    User user = (User)value;
                    return (T)new UserVO(user);
                }
                return null;
            }
        });

        BeanDefinition rootBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(User.class).getBeanDefinition();
        beanFactory.registerBeanDefinition("User", rootBeanDefinition);

        UserVO bean = beanFactory.getBean("User", UserVO.class);
        Assert.assertTrue(UserVO.class.isInstance(bean));
    }

屬性裝配

beanFactory 在進行屬性裝配時,會讀取 beanDefinition 對象中的PropertyValues中的propertyName=propertyValue,所以,我們想要對 bean 注入什麼參數,只要在定義 beanDefinition 時指定就行。

    @Test
    public void testPopulate() {
        // 創建BeanFactory對象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // 定義userService的beanDefinition
        AbstractBeanDefinition userServiceBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        // 定義userDao的beanDefinition
        AbstractBeanDefinition userDaoBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserDao.class).getBeanDefinition();
        // 給userService設置裝配屬性
        userServiceBeanDefinition.getPropertyValues().add("userDao", userDaoBeanDefinition);
        // userServiceBeanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
        // userServiceBeanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_NAME);

        // 註冊Bean
        beanFactory.registerBeanDefinition("userService", userServiceBeanDefinition);
        beanFactory.registerBeanDefinition("userDao", userDaoBeanDefinition);

        // 獲取Bean
        IUserService userService = (IUserService)beanFactory.getBean("userService");
        userService.save(null);
    }

運行以上方法,發現 userDao 對象被成功注入到了 userService 對象中!

這裏補充一點,beanFactory 除了通過 beanDefinition 中的PropertyValues獲取 propertyName=propertyValue,還可以讀取 bean 中的屬性來自動定義 propertyName=propertyValue,只要設置 beanDefinition 的 autowireMode 就可以了。

bean 實例化、屬性裝配和初始化的處理器

前面講到,我們將 bean 的實例化、屬性裝配和初始化都交給了 spring 處理,然而,有時我們需要在這些節點對 bean 進行自定義的處理,這時就需要用到 beanPostProcessor。

這裏我簡單演示下如何添加處理器,以及處理器的執行時機,至於處理器的具體實現,我就不多擴展了。

    @Test
    public void testPostProcessor() {
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // 添加實例化處理器
        beanFactory.addBeanPostProcessor(new InstantiationAwareBeanPostProcessor() {
            // 如果這裏我們返回了對象,則beanFactory會將它作為bean直接返回,不再進行bean的實例化、屬性裝配和初始化等操作
            public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException {
                if(UserService.class.equals(beanClass)) {
                    System.err.println("bean實例化之前的處理。。 --> ");
                }
                return null;
            }

            // 這裏通過返回的布爾值判斷是否需要繼續對bean進行屬性裝配和初始化等操作
            public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException {
                if(UserService.class.isInstance(bean)) {
                    System.err.println("bean實例化之後的處理。。 --> ");
                }
                return true;
            }
        });

        // 添加裝配處理器
        beanFactory.addBeanPostProcessor(new InstantiationAwareBeanPostProcessor() {

            // 這裏可以在屬性裝配前對參數列表進行調整
            public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) throws BeansException {
                if(UserService.class.isInstance(bean)) {
                    System.err.println("屬性裝配前對參數列表進行調整 --> ");
                }
                return InstantiationAwareBeanPostProcessor.super.postProcessProperties(pvs, bean, beanName);
            }

        });

        // 添加初始化處理器
        beanFactory.addBeanPostProcessor(new BeanPostProcessor() {

            // 初始化前對bean進行改造
            public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
                if(UserService.class.isInstance(bean)) {
                    System.err.println("初始化前,對Bean進行改造。。 --> ");
                }
                return bean;
            }

            // 初始化后對bean進行改造
            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
                if(UserService.class.isInstance(bean)) {
                    System.err.println("初始化后,對Bean進行改造。。 --> ");
                }
                return bean;
            }
        });
        // 定義userService的beanDefinition
        AbstractBeanDefinition userServiceBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserService.class).getBeanDefinition();
        // 定義userDao的beanDefinition
        AbstractBeanDefinition userDaoBeanDefinition = BeanDefinitionBuilder.rootBeanDefinition(UserDao.class).getBeanDefinition();
        // 給userService添加裝配屬性
        userServiceBeanDefinition.getPropertyValues().add("userDao", userDaoBeanDefinition);
        // 給userService設置初始化方法
        userServiceBeanDefinition.setInitMethodName("init");
        
        // 註冊bean
        beanFactory.registerBeanDefinition("userService", userServiceBeanDefinition);
        beanFactory.registerBeanDefinition("userDao", userDaoBeanDefinition);

        IUserService userService = (IUserService)beanFactory.getBean("userService");
        System.err.println(userService.get("userId"));
    }

運行以上方法,控制台打印出了整個處理流程。實際開發中,我們可以通過設置處理器來改變改造生成的 bean 。

以上,基本介紹完 spring-bean 組件的使用,下篇博客再分析源碼,如果在分析過程中發現有其他特性,也會在這篇博客的基礎上擴展。

相關源碼請移步: spring-beans

本文為原創文章,轉載請附上原文出處鏈接:https://www.cnblogs.com/ZhangZiSheng001/p/13126053.html

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

沙漠古湖發現12萬年前足跡化石 古人類首遷入最早證據

摘錄自2020年9月23日自由時報報導

據《CNN》報導,最新發表於權威期刊《科學進展》的研究報告中,科學家在沙烏地阿拉伯內夫得沙漠(Nefud Desert)的阿拉特哈古湖(Alathar lake)遺跡中,發現數百個因沉積物侵蝕而成的足跡化石。

報告顯示,在總數高達376個足跡化石中,科學家辨識出屬於馬、駱駝及大象的足跡,其中有9個經分析後被認定屬於人類,可能是古老人類遷入阿拉伯半島的最早證據。

研究人員推算,這批足跡可以追溯到里斯冰期與沃姆冰期中的里斯-沃姆間冰期(Riss-Wurm),距今約13萬年至11萬年前,而這批足跡發現地現今雖為一片沙漠,但在當時是相當潮濕舒適的環境,促使人類與動物在該區域內活躍生存。

國際新聞
沙烏地阿拉伯
地質

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

大撈特撈 加拉巴哥水域遭中國漁船「包圍」

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

西伯利亞森林大火 科學家憂氣候變遷成惡性循環

摘錄自2020年9月24日自由時報報導

俄羅斯西伯利亞今年林火問題嚴重,外媒表示,嚴重的林火帶來的是惡性循環,一方面釋放更多的溫室氣體,接著又因氣候暖化使森林更容易發生火災。

《BBC中文網》報導,西伯利亞的森林大火釋放出破紀錄容量的碳。更大的危機在於火焰燃燒產生二氧化碳,且因為凍土被溶解而釋放更多溫室氣體,導致西伯利亞氣溫上升,森林因此更加乾燥,更容易燃燒,成為氣候變化的惡性循環。

報導指出,科學家認為森林大火正在產生極大量的溫室氣體,改變全球氣候。

氣候變遷
環境新聞
國際新聞
俄羅斯
森林大火
溫室氣體

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

※網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

對抗氣候變遷和空污 加州2035年起禁售新汽油車

摘錄自2020年9月24日中央社報導

加州州長紐松今天(24日)宣布,加州計劃自2035年起禁止販售新出廠的汽油驅動客車和卡車,逐步淘汰傳統汽車並轉向電動車,積極減輕對化石燃料依賴,以對抗氣候變遷和嚴重空污。

州長辦公室說,加州碳污染有一半以上來自交通運輸,州內有部分地區的空氣為全國最糟。加州的宏遠目標是以1990年為基準,在2050年前減少80%溫室氣體排放量,但近幾年來,交通運輸的碳排放量仍持續增加。

這項行政命令要求加州在2035年之前,全面銷售新出廠的零碳排客車和卡車;在2045年之前,所有新販售的中重型卡車也必須為零碳排車輛。

州長辦公室說,原本駕駛汽油車的加州居民不會受到影響,二手汽油車也可繼續買賣。加州占美國所有汽車銷量大約11%。

氣候變遷
污染治理
能源轉型
環境新聞
國際新聞
美國
加州
電動車
空污

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

奔馳技術,0油耗能跑500公里,賣30萬值嗎?

前排的乘坐空間足夠寬敞,座椅填充物軟硬適中,包裹性也不錯,可是對腰部的支撐和大腿的承托缺了點意思。由於大部分純電動車型都把電池組藏在後排座椅下,所以後排的乘坐空間通常都是純電動車的硬傷。可是騰勢500讓有點出乎意料,雖然頭部空間也許對180cm的人來說還是會顯得有些局促,但整體乘坐質感已經要比一些自主純電動車型好得多,值得點贊。

從大街上越來越多電動車開始,彷彿就註定了我們國家要成為“新能源汽車大國”。而事實上,我們國家在2017年就賣出超過100萬輛電動車,撐起了2017年新能源汽車全球銷量的半邊天,“新能源汽車大國”可謂當之無愧。

放眼看去,如今國內的純電動汽車不是續航里程過短,就是乘坐質感、做工不盡人意,想要找出“物美價廉”的車型還真的是難上加難。

騰勢,它是一個比亞迪與戴姆勒公司設立的合資品牌,而騰勢500則是騰勢400的改款車型,補貼后售價為29.88-32.88萬元,是一款純電動車型。

不過在低溫、高原地區試駕了一款純電動車型,的第一反應是:由於高原地區的含氧量較低,所以傳統燃油車會出現動力下降等各種“高反”現象,那騰勢500也會出現“高反”嗎?再加上如今不少純電動車型的表現實屬一般,自然一開始也對它沒什麼好感。

那麼騰勢500在高原地區能熬得住嗎?續航里程的表現如何?它包含了戴姆勒的哪些DNA?帶着這些問題,來到了位於青藏高原中部的拉薩。

這外觀…獨特!

作為騰勢400的改款車型,騰勢500外觀上的改變主要集中在前臉。保險杠、大燈、進氣格柵都經過重新設計,顏值方面提升了不少。

騰勢500車身尺寸長寬高分別為4672/1850/1642mm,軸距為2880mm,定位是一款純電動的中型車。從側面看,車身彷彿採用了兩廂的設計。

可是繞到後面看,畫風就不大一樣了。車身尾部採用了內凹的設計,看起來有點三廂車的感覺,再加上它的後備廂門沒有像兩廂車那樣採用掀背設計,所以它實際上還是一款三廂車。這樣的設計,在如今的汽車市場上並不多見。

外觀設計如此獨特,這都是戴姆勒設計師的傑作。值得一提的是,後備廂開口挺大的,內部空間也比較大,基本上能滿足日常家用。

內飾不錯,但尚有改進空間

跟騰勢400相比,騰勢500的內飾並沒有作出太大的改變,最主要是換上了兩輻的多功能平底方向盤,另外對中控面板的按鈕也作出了調整。中控台採用軟性搪塑材質,門板以及座椅則採用皮質進行包裹,用料和做工都令人滿意,營造出時尚、高檔的氣息。

除了多功能方向盤以外,騰勢500還配備了全液晶儀錶盤、电子擋桿、电子手剎,可謂科技感十足。

大尺寸的中控显示屏集成了車載導航、倒車后視、音影娛樂系統、互聯繫統等配置,可是系統的版面操作起來有些不便,這點還有待優化。

前排的乘坐空間足夠寬敞,座椅填充物軟硬適中,包裹性也不錯,可是對腰部的支撐和大腿的承托缺了點意思。

由於大部分純電動車型都把電池組藏在後排座椅下,所以後排的乘坐空間通常都是純電動車的硬傷。可是騰勢500讓有點出乎意料,雖然頭部空間也許對180cm的人來說還是會顯得有些局促,但整體乘坐質感已經要比一些自主純電動車型好得多,值得點贊。

雖說頭部空間有點局促,但騰勢500帶有大尺寸的全景天窗,算是為乘坐舒適性扳回了一些分數。

此外,騰勢500的後排還配有空調出風口和12V的車載電源,可是後排門板下方的儲物格實在太小,就連水瓶都放不下,基本上沒什麼實用性可言,這點也同樣有待改進。

這真的是一款電動車?

從某種程度來說,這次不能單純說只是一次試駕。在平均海拔4000米左右的高原地區,不僅低溫、缺氧,還要沿着G318國道和林拉高速長途跋涉400多公里從拉薩到達林芝,其中還要翻越海拔高達5013米的米拉山口,單程耗時長達8小時左右,這無論對騰勢500還是駕駛員來說都是一場嚴峻的考驗!

騰勢500的續航里程能比騰勢400更長,除了電池的容量有所增加之外,它的百公里耗電量也要比騰勢400更低,而電動機的功率和扭矩則沒有變化。

一般的純電動汽車,當你踩下電門踏板時,通常都會感受到扭矩輸出所帶來的強烈推背感,但在騰勢500身上這是不存在的,礙於扭矩保護設定,讓你駕駛起來並不覺得它是一款純電動汽車,就像是一款動力充足、換擋平順的傳統燃油車。

唯一不足的是剎車踏板的自由行程有點過長,對於剎車力度的掌握需要一點時間去適應。

方向的指向性不錯,不存在什麼虛位。也許是因為方向助力是採用电子液壓的方式,打起方向來手感會稍微偏重。

從拉薩出發前往林芝,一路上綜合了鋪裝路面和非鋪裝路面,可是騰勢500底盤調校相當不錯,無論是面對哪一種路況都表現得格外舒適,減振器對一些細碎的振動也過濾得很好,這顯得很戴姆勒。

是的,那底盤的調校會讓你意想不到騰勢500採用的是扭力梁式非獨立后懸,這裏印證了平時所說的:光靠懸架類型去評定一款車是不是好車是沒意義的,得看調校!

也許是底盤調校不錯,又或者因為電池組重量的緣故,騰勢500的底盤質感給人感覺很沉穩,在高速上行駛並沒有發飄的感覺,也顯得很紮實。

還有讓感到意外的就是它的隔音能力,無論是路噪、胎噪還是風噪都隔絕得很好,車廂內顯得很寧靜。或許是沒有了發動機噪音和排氣聲浪的緣故,在如此安靜的環境中行駛,多少會覺得有點詭異,這時需要放點音樂調節一下氣氛。

對於一款純電動車型來說,續航里程是最大的痛點,而且隨着海拔的升高、溫度的降低,對電池電量也會有一定的影響。

當海拔漸漸升高,路程也越跑越遠,續航里程會出現急劇下降,這也許就是純電動車型的“高原反應”。另外,這一路走來沒有任何的充電設施,當到達海拔5013米的米拉山口時,我們車上的每個人都出現了“續航里程焦慮症”。

可是後來隨着海拔高度從5013米漸漸回落,加上下坡時的動能回收,續航里程有所回升,騰勢500最終還是能克服難關,完成這一次歷時8小時左右、長達400多公里的旅程。到達林芝的目的地時,我們的試駕車還剩下53公里的續航里程。

騰勢500這樣的續航表現,要是對於日常市區通勤來說已經是相當夠用了,可是礙於如今大多數地區的充電設施還並不充足,對於長途駕駛仍會存在一定的里程焦慮。

寫在最後

經過這一次試駕,對騰勢500的評價是:行駛質感和內飾的用料、做工都相當不錯,乘坐質感也要優於目前市面上大部分的純電動車型,可是在儲物空間以及車載多媒體系統方面仍有待改進。

也許會有人覺得,騰勢500的補貼后價格為29.88-32.88萬元會有點貴,但只能說它的品質和技術擺在那裡。總體而言,騰勢500也許稱得上是如今國內純電動汽車市場上難得一見的精品車型。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※網頁設計最專業,超強功能平台可客製化

比亞迪唐小心了!這款霸氣SUV油耗2.3L、6.5s破百

(左方包內含充電設備)溜背造型限制了後備廂容積的上限,電池組成為尾廂儲物空間的又一掣肘。尾廂蓋掀開作遮陽傘,高聳的地台適宜盤腿垂釣。但搬運沉重物品能讓垂釣積攢回來的耐心通通付諸東流。往积極方向想,電池組後置能與乘客艙進一步分離,增加高速碰撞時的安全性。

時間回到2010年,手攥兩千預算想買到配備高通1.5GHz雙核處理器、1GB運存、夏普液晶屏的手機,唯有小米1能讓挑剔黨無從置喙。

厚道配置、親民售價,再輔以漂亮臉蛋,怎能不收穫喜人銷量?就此,為“發燒而生”的小米不可避免地將中國手機市場,乃至國際市場帶入硝煙瀰漫的價格戰當中。

站穩腳跟后謀求往上發展、實現高端化,成為每個企業慣用的運營手段。手機領域如此,偌大汽車疆域亦然。這境況不禁讓聯想到車企哈弗,在屢創銷量佳話后,不甘人後地構築高端品牌——WEY。

VV5、VV7的大賣讓魏建軍實現更高端化的決心更為堅定,隨後與時俱進地推出由全新pi4平台打造的首款插電式混合車型——WEY p8。身體力行,前往長城汽車徐水分公司工廠一試究竟。

早在2013年,長城便率先啟動插電式混動車型項目,2016年印度技術研究中心的成立,2018年德國技術團隊的組建,都為pi4平台孕育出第一顆碩果作出莫大貢獻。

p8是WEY新能源專用平台pi4打造的首款產品,不難理解,p代表plug-in插電式,i代表intelligent智能化,而4則代表4WD四驅系統。

WEY並沒對p8實施大刀闊斧的革新,外觀造型與VV7神肖酷似,僅僅在進氣格柵、左前翼子板和輪圈造型上示出差異化。

高調、輕奢、精緻,這些VV7為人稱道的屬性,都在WEY p8身上得以沿襲,二十來萬收穫百萬豪車的回頭率,絕對是彰顯個性的一抹艷麗。但總感覺這套設計方案安放在VV5的緊湊身段上會更賞心悅目。

面積誇張的熏黑大嘴,貪婪地吞噬一切阻擋的空氣,讓風冷散熱進行得更徹底。凌厲的大燈眼角、刀鋒般小前唇,活脫脫一血脈僨張的虎痴許褚。

大量平鋪直敘的線條,刀劈斧鑿、直來直往,絲毫沒有嬌柔造作。縱貫流水型腰線如同覬覦獵物的捷豹,蓄勢待發。

尾部方面,混動車型依舊保留四齣排氣布局,靈感取自F1賽車的高位剎車燈再一次強調運動車型的顯赫身份,頗具儀式感。

“長城汽車”字眼讓駕駛員露怯,摳標將成不少車主提車儀式中的重要環節。

如你所見,溜背造型、四齣排氣、高位剎車燈,頗有自主第一轎跑SUV的架勢。

不枉重金挖角前寶馬設計師皮埃爾,果然沒有花錢的不是。皮埃爾於上年年底辭職投奔起亞,WEY的家族設計語言能否得到正向延續?一同觀望。

(21英寸多輻式熏黑輪圈)

p8目前公布了兩個車型版本,中網的鍍鉻飾條勾勒和20英寸輪圈為入門車型所獨享。據悉,入門車型可選裝21英寸多輻式輪圈。

與外觀一樣,內飾未能表現出足夠的革新度和顛覆感,與VV7的內飾布局如出一轍,僅僅在模式選擇按鈕上露出“端倪”。用料厚道、做工良好,未見國產車中植入骨髓的粗獷,實屬難得。

軟質材料的觸感、旋鈕按鍵的阻尼回饋以及氣味處理,都表現出該價位車型應有的水準,WEY對內飾氛圍的執念是可感知的,整車靜態體驗儼然是越級的存在。

艙內環境犹如一間精緻的衣帽間,豪華且自帶親和力。需要指出的是,物理功能按鍵間未進行無縫處理,密集的縫隙貪婪地吸食着窗外塵埃,給你一個不開天窗的理由。

p8全系標配全液晶儀錶盤、流媒體后視鏡、全景天窗、駕駛模式選擇、方向盤力度調節等國人喜聞樂見的實用配置,厚道如手機界的小米旗艦機型。拉絲效果輻儀錶檯布滿功能按鍵,电子擋把的缺席略顯違和。

遺憾的是,此前VV5、VV7上為人詬病的流媒體后視鏡反光現象,在p8身上未見太大改善。與工作人員交談得知,廠方將在8月整改,不會對群眾的聲音置若罔聞。

不難發現,p8與VV7的車寬、高度、軸距別無二致,依葫蘆畫瓢的外殼缺乏新鮮度,但看在這副漂亮皮囊的份上,姑且饒恕。

(面積可觀的全景天窗)

2950mm長軸距較好地轉化為艙內縱向空間,中等身材後排翹個二郎腿不在話下。除了頭部空間不夠友好以外,其他方面不易聽到乘客的抱怨聲。

(左方包內含充電設備)

溜背造型限制了後備廂容積的上限,電池組成為尾廂儲物空間的又一掣肘。尾廂蓋掀開作遮陽傘,高聳的地台適宜盤腿垂釣。但搬運沉重物品能讓垂釣積攢回來的耐心通通付諸東流。

往积極方向想,電池組後置能與乘客艙進一步分離,增加高速碰撞時的安全性。此外,對改善車輛通過性、涉水深度也大有裨益。

p8的插電式混動系統由重新調配的2.0T電控渦輪直噴發動機(4C20NT)+ 15kW BSG輔助皮帶式啟動電機 + 85kW TM驅動電機組成,傳動方面由德國格特拉克六速濕式雙離合完成。

遇到陌生詞彙,難免俗套地解釋下。TM驅動電機則負責獨立驅動兩個後輪,繼而實現智能四驅系統,讓p8不至於在越野環節出醜狼藉。

而BSG啟動電機則身兼多職,起步時能提供加速助力,車輛滑行時(發動機停止運作)重新給油,會將引擎帶動至相應轉速,改善動力響應。此外,還能調節發動機負載以及為後備廂蓄電池發電。

p8綜合馬力340ps、峰值扭矩524N·m,感受着全油門下悉數釋放的扭矩,讓全身心投入其中,急速攻彎時不盡理想的循跡性提醒,還沒為這超兩頓重的大傢伙關掉車身穩定控制系統。

操控並不遲鈍,轉向曠量不大,即便將方向盤迴饋力度調至最高擋位,仍會抹去大部分路感,別指望獲得過多駕駛樂趣。簡而言之,是輛容易開快、容錯率較高的家用SUV。

德國格特拉克六速濕式雙離合勝在穩定可靠,在驅動電機和德國舍弗勒2擋減速器的加持下,VV5、VV7上起步雙離合嚙合遲緩、掛倒擋不利索等病症一去不復返。出乎意料的換擋平順性,用絲般順滑形容也不為過。

EV模式純電動驅動下猛踩油門,內燃機總會思考半秒才願介入,但接踵而至的爆發力能讓你忘掉此前的不暢快。簡而言之,純電動模式下超車需提前作出預判或調整駕駛模式。

本次試駕車型配備主打抓地力、操控的馬牌ContiSport Contact 5高性能輪胎(255/50 R20),選用21英寸輪圈的車型則適配佳通為長城開發的低扁平比輪胎,顯然前者綜合性能更勝一籌。

底盤方面,高速行駛時緊急變線和連續變線,車身都能維持得體姿態,低K值彈簧帶來稍慢的懸架反應速度,重心轉移跟駕駛員預期不夠合拍,但勝在拋跳抑制處理到位,底盤韌性也確實客觀存在,在一次次濾振動作中得以體現。

官方純電續航為50km,最大續航里程為660km,綜合工況百公里油耗為2.3L,搭載12.96kWh的三元鋰電池組(質保8年/15萬公里)。 

充電口被設置在左前翼子板上,只配備了國際慢充充電口。條件允許下,最快充滿電時間為四小時。

支持預約充電功能,能通過移動設備控制充電時長。出於對充電成本的考量,車主可根據不同時段的電價差異,實現合理錯峰的高效費比充電。

遠不止此,低速純電動驅動時還可激活“虛擬引擎音”,模擬傳統發動機的工作聲浪。使用家用插線板充電時,可根據電功率選擇充電電流大小,避免電源端功率過大,釀成安全事故。

此外,p8還配備三級可調能量回收系統,分別為減弱、標準、加強。加強模式下鬆開油門,滑行有效距離縮短,拖拽感客觀存在,習慣駕駛傳統燃油車的車主需適應一段時間。

需要指出的是,不少調節功能集成在中控屏上,操作成本較高的同時,盲操便利性大打折扣,對行車安全的考量略欠周到。

在看來,越級靜態表現是p8一大閃光點,在高性能與低能耗間取得韌性平衡更是難能可貴。據悉,p8新能源補貼后售價約為26-28萬元,這給即將上市的換代比亞迪唐出了道難題。

正如長城汽車徐水分公司工廠的標語:每天進步一點點。低調做事、高調做產品,想必是長城汽車對上下員工的最大寄望。如此看來,產品的成功絕非偶然。

面對這荒蕪滿溢的浮躁時代,願意身體力行抓產品質量且遠離鎂光燈的董事長,好比鐵樹開花,而“保定車王”魏建軍就做到了。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※網頁設計最專業,超強功能平台可客製化

如果開車也是門藝術,那這幾位必須是真正的藝術家!

(暴力掛擋會損壞變速箱)講到掛擋,我們順勢談一下跟趾動作,其實就是降擋補油,保證順利降擋和動力銜接。因為高低擋降低擋,之間會有一個轉速差,那麼在換擋時,齒輪之間就會因為轉速之間有落差而造成降擋困難的現象,尤其在直齒變速箱中情況會更明顯。

年幼的你,偷偷看過公交司機開車吧?那個時候的你,看着他們單手掌控方向盤,另一隻手操縱換擋桿,動作乾脆利落,是不是覺得特別帥,想必你也在旁邊默默地模仿他們吧,甚至腦海里有長大當一名司機的想法。

現在大家看看這段視頻,是不是和你的記憶有點偏差,未滿18歲的兒童與正在學車的朋友注意了,以下視頻切勿模仿,難度很大。

以上的三位司機駕駛技術,並沒有質疑,就是換擋的姿勢有點特別,着實吸引眼球,耳目一新。

順便我們普及一下正規的變速桿握法和操作方法:

右手掌心輕貼住檔把頭,五指向下自然握住檔把頭,可根據不同擋位的需要,手掌做適當的轉動。以手腕和肘關節的力量為主,肩關節為輔,準確地掛入或脫出某一選定的擋位。右手操作變速桿,兩眼平視前方,左手握穩方向盤,右腳松抬油門踏板的同時,右腳踏下離合器踏板,隨即用適當的力量推入或拉出變速桿。不得硬推、強拉和下視變速桿。

(暴力掛擋會損壞變速箱)

講到掛擋,我們順勢談一下跟趾動作,其實就是降擋補油,保證順利降擋和動力銜接。因為高低擋降低擋,之間會有一個轉速差,那麼在換擋時,齒輪之間就會因為轉速之間有落差而造成降擋困難的現象,尤其在直齒變速箱中情況會更明顯。如果不使用跟趾動作,即使能夠順利降擋,也會出現車輪扯高發動機轉速的現象,輕則加速離合片磨損,嚴重的話更會損害發動機(轉速反拖超過紅線區)。那麼怎樣完成跟趾動作呢?

但是,這個動作難度就在於你需要同時完成多個操作,有時候沒有配合好反而會適得其反。很多車手在做這個動作時,會不自覺地減少了剎車力度,入彎速度過快,導致失控。也有的在換擋的時候,沒有充分減速,就放了離合,或者是降擋過多,使得發動機的轉速被提到更高,有可能損壞發動機並且造成失控。所以建議新手先熟悉換擋的動作,等駕駛技術提升起來,再到無人空曠的地方進行練習,避免發生意外。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※別再煩惱如何寫文案,掌握八大原則!

※產品缺大量曝光嗎?你需要的是一流包裝設計!

我就下車買了包辣條,我的車居然自己跑了?

當遇到等燈情況時,只需深踩或者保持剎車一段時間的話,他就會自行啟動拉起手剎,以防溜車,而當起步時,直接踩油門它又會自行解鎖,是一個非常便利且強大的功能。此功能同樣適用於配有电子手剎的手動擋車型,而且相比之前介紹的坡道輔助功能,AUTO HOLD在坡道起步時要來得更便捷更從容。

最近,看到一則讓人非常驚險而冒冷汗的視頻,

一位司機停車時居然忘記拉起手剎,導致車子被大風吹移,

所幸的是沒有造成人員傷亡,

接下來我們先來看一下這個視頻:

這位司機過後除了買張彩票之外,更應該嚴肅反省一下自己的過錯!

其實,生活中因為忘記拉手剎造成的悲劇有很多,

同樣,為了防止這些類似錯誤造成的悲劇,汽車廠商考慮了許多,而AUTO HOLD就是這樣的一個功能;

AUTO HOLD的中文全稱叫自動駐車功能,是配合电子手剎,並通過ABS、ESp等一些列控制單元來工作;

當遇到等燈情況時,只需深踩或者保持剎車一段時間的話,他就會自行啟動拉起手剎,以防溜車,而當起步時,直接踩油門它又會自行解鎖,是一個非常便利且強大的功能。

此功能同樣適用於配有电子手剎的手動擋車型,而且相比之前介紹的坡道輔助功能,AUTO HOLD在坡道起步時要來得更便捷更從容。

現如今大部分配有电子手剎的車型都附有AUTO HOLD功能,還算是一個較為常見的配置,更是懶人的福音;

拉手剎是停車時必不可少的步驟,因為這個小小的動作會影響自己以及公共的安全,所以小夥伴們一定要養成上車系好安全帶,停車順帶手剎的好習慣!本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

誰說開寶馬坐奔馳?這幾台奔馳能讓你爽到下不了車!

試着去揣摩一下C63用戶的心理,他們應該不太會在乎載人載物的實用性,花了個一百好幾萬的買高性能車,最先想要收穫的是身份認同感以及駛過街頭被萬眾注視的榮耀感,所以要是四門的C63,在視覺上就難以營造這種效果。其次則關乎到駕控,雖然C63與C63 Coupe的動力總成一模一樣,但實際體驗下來,由於車輛尺寸、車架設計、前後重量比等不同,在駕控上造就的差異還是能夠被感知,相比之下C63 Coupe表現更均衡,無論是做漂移show,還是跑圈時彎中的可控性都要更優秀,所以沒有理由不選它。

當下是AMG家族最鼎盛的時代,63系列都逐漸完成了產品的迭代,新加入的43系列則驟然讓AMG車型有了“性價比”一說,而處在金字塔塔尖的AMG GT系列,也迎來了一位新成員。

4月13日晚間,浙江紹興,伴着蒙蒙細雨和陰冷空氣,梅賽德斯-AMG卻以特殊的方式燃點了周遭的氣氛。一款新車的上市發布,沒有明星站台,沒有歌舞助陣,但新車本身就已是萬眾焦點,當晚,AMG GT C中國特別版正式登陸中國市場,指導價格為197.8萬元。

雖然上市的只有一款車型,但意義卻重大。AMG GT作為AMG家族的頂級車系,無疑是這個品牌形象和產品實力的擔當,而基於頂級車係為中國提供特別版,無疑是AMG向中國消費者的友好示意,同時也是對中國市場的絕對重視。

要知道,AMG GT C在定位上,僅次於現時AMG最Top的跑車車型——AMG GT R,那頭身披一襲綠袍的美麗怪物。

有幸的是,在上市發布會後的AMG駕駛學院中,我體驗的首款車型就是這輛AMG GT R。而在两天時間里充分駕駛過近乎全系AMG車型后,我也挑選出三款我最喜歡和兩款我不太感冒的車型與各位分享。

最喜歡的AMG之:AMG GT R

不禁想起一個梗,《頭文字D》電影里,阿木非要老爹給自己買一輛GT-R,老爹說要不買輛奔馳?這不,奔馳也有“GT R”了,阿木你滿意了嗎?

AMG GT R自然會是我最喜歡的AMG車型之首,這來自於它的純粹。585ps最大馬力和700N·m最大扭矩,共同呈現的是3.6s破百的極致加速,聽上去並沒有比GT S快上很多,但捨棄更多GT性格而向賽車化靠攏,是這輛GT R想要達成的事。

全新設計的空氣動力學套件正如你所見,視覺上讓這輛GT R看着會比GT S更來者不善,同車系中最大的后擾流板和層次豐富的整流器讓你可以不用通過尾標,僅僅是看局部就能確認這不是一輛普通的AMG GT。

而新的這套空氣動力學套件,使得AMG GT R在極速下比AMG GT S多獲得155公斤的下壓力。

駕駛這輛以7分10秒09排在紐北量產車成績第四的GT R,跑浙江國際賽車場基本上是小菜一碟。四條pilot Sport Cup 2輪胎的抓地力十分驚人,我可以放肆地以更高的速度切入那些低速彎而不用擔心推頭。

首次被應用在GT車繫上的後輪主動轉向系統對過彎的幫助也很大,它由電動馬達控制,高於100km/h過彎,後輪能以最高5°轉角與前輪同向轉動;低於100km/h過彎,後輪則能以最高1.5°轉角與前輪反向轉動。

除了全新調校后,採用了比GT S更強大的新型渦輪增壓器的M178發動機外,AMG又為GT R專屬打造了高性能排氣系統,兩者相遇簡直是賽道上的黃金組合,比GT S更高效的動力爆發以及更激昂彭拜的轟鳴、回火,即便是在這裏開着這輛GT R跑上三天三夜,我也不會覺得膩。

最喜歡的AMG之:C63 Coupe

C63 Coupe是我的菜,如果哪天我能有個百來萬的預算購車,定會將它收入囊中。也許有人會問,為何一定是Coupe?基於兩點。

試着去揣摩一下C63用戶的心理,他們應該不太會在乎載人載物的實用性,花了個一百好幾萬的買高性能車,最先想要收穫的是身份認同感以及駛過街頭被萬眾注視的榮耀感,所以要是四門的C63,在視覺上就難以營造這種效果。

其次則關乎到駕控,雖然C63與C63 Coupe的動力總成一模一樣,但實際體驗下來,由於車輛尺寸、車架設計、前後重量比等不同,在駕控上造就的差異還是能夠被感知,相比之下C63 Coupe表現更均衡,無論是做漂移show,還是跑圈時彎中的可控性都要更優秀,所以沒有理由不選它。

最喜歡的AMG之:C43

自43系列出現,市場上也跟隨了不少質疑聲,諸如“43非真AMG”的言論此起彼伏。誠然,從硬件來看,43系的M276發動機並非AMG“一人一機”打造,只是在經過AMG重新調校后獲得了更強的動力。

但梅賽德斯還是大大方方地為它烙上了AMG的徽標,不像奧迪RS下來有S、S Line,M power下來會有M performance,被叫做AMG的就只能是AMG,這點毫無疑問,即便它再入門也好。

2017年,AMG全球銷量已超過13萬輛,這證明AMG已從1967年那個誕生於阿爾法巴赫的不知名小作坊,成長為全球化高性能運動大品牌,而43系列的出現,正是要讓更多喜愛AMG的人擁有它,符合品牌發展理念。

所以說,有興趣入手AMG C 43的消費者,從C300升級上來的用戶一定佔少數,而多數是覺得C63遙不可及,退而求其次的用戶。於我個人,C43則要買四門為好,畢竟車輛性格的兩面性讓它還是具備了不錯的實用功能,所以平日里通勤代步接小孩不成問題,心血來潮飆一下同樣能讓你心滿意足,這就是C43的魅力。

最不感冒的AMG之:A45

再來說說兩款我不太感冒的AMG,首先是45系列,CLA 45還好,畢竟有轎跑造型和無框車門,再配上AMG套件和炸天的排氣聲,觀感聽覺上還是物有所值。

但來到A45就不是這麼回事兒了。小兩廂的設計註定只能被那些鋼炮粉喜愛,在失去了視覺上的裝逼能力后,A45能吸引消費者的大概只有那被極致壓榨的性能。

而恰恰是因為在一具2.0T四缸機器里壓榨出了恐怖的381ps馬力,參數很棒但體驗不佳,行駛中車內隨時伴着發動機引起的共振,同時發動機低扭也不那麼理想。

在這樣的體驗和逼格基礎上,A45的售價其實並不低,指導價在55萬左右。所以AMG應該是有所覺悟,早前已公布消息將推出更入門的A35,300ps左右的馬力會相對更合適,同時售價也會更親民,如果最終能做到福克斯ST一般有趣又接地氣,那就算是成功了。

最不感冒的AMG之:E63 S

AMG E級車型目前並不豐富,一款43系另一款則是E63 S 4MATIS+,算上未來要推出的53系列,它也還是史上最強E級。集新一代E級華麗內飾、612ps/850N·m的接近AMG家族最強動力(第一為S65 L的6.0T)、AMG家族最先進四驅(4MATIC+)於一身,看上去無懈可擊。

就是這樣一款硬件素質爆表的E級,卻未能喚醒我內心的共鳴,或者應該說它用力過猛了。中大型車的車身、軸距限制了它的動態表現,駛過同樣的彎道,E63 S不能像GT R或C63一般敏捷,在組合彎中,懸架壓縮情況也會更明顯。

在駕駛過很多高性能車后,總覺得沒有個五六百匹就很難再取悅自己,但E63 S還是沒有把握好度,生性躁動的車尾,需要駕駛者有豐富的經驗同時足夠細心對待油門。

而偏疲軟的制動和不太好修正的車身姿態,讓這輛E63 S僅僅是聽起來嚇人但開起來並沒有讓我感到得心應手。

寫在最後

也就是在試駕會結束的當晚,梅賽德斯又把眾人的聚焦點,從剛剛舉辦過AMG GT C上市會的紹興,帶到了幾百公裡外的外灘,當晚,十里洋場也終於有了潮流新地標——Mercedes me外灘體驗店。

這是中國大陸第二家、全球第七家Mercedes me體驗店。全球七家,中國大陸獨佔兩席,可見中國市場對梅賽德斯的重要性,這一如為中國提供AMG GT C特別版以及引入AMG 43系列。對消費者而言是值得欣喜的,更多元化的奔馳、AMG正等待我們去迎接。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

※網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!