標籤: FB行銷

  • G20部長會議 矢言永續農業 消除饑餓

    摘錄自2018年7月30日青年日報報導

    G20農業部長會議28日於阿根廷布宜諾斯艾利斯落幕,會後各國農業部長發表聯合聲明,矢言「共同努力消除饑餓、促進永續農業,以實現未來糧食的不虞匱乏」。這將成為此屆G20的三大優先目標。

    聲明且強調創新的重要性,並對「愈來愈常採取保護主義的非關稅貿易措施感到擔憂」;因為「農業發展、投資與貿易及引進改良技術,近數十年成為人類進步的驅動力,並改善全球數百萬人的生活條件」。G20農業部長因此鼓勵創新農業技術,提升農業生產力與永續性。

    另重申土壤健康的重要性,認為其能強化農業在人類發展與資訊通訊技術(ICTs)中的角色,進而加強生產力、糧食安全與農業永續。同時呼籲減少食物損失與浪費,以增進糧食安全,減輕對氣候、水與土地資源造成壓力,並改善農夫、經銷商與家庭經濟的收入。

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

    【其他文章推薦】

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

    新北清潔公司,居家、辦公、裝潢細清專業服務

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

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

    ※超省錢租車方案

    FB行銷專家,教你從零開始的技巧

  • 數據為大貓洗污名 印度北方邦努力和虎豹當好鄰居

    環境資訊中心綜合外電;范震華 編譯;賴慧玲 審校

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

    【其他文章推薦】

    ※超省錢租車方案

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

    ※回頭車貨運收費標準

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

    FB行銷專家,教你從零開始的技巧

  • 中國醞釀小範圍試點扶持微型電動車

    據上證報從第四屆全球新能源大會上獲悉,中國大陸主管部門正在研究在全國部分城市開展小範圍示範試點工作,以加強管理,規範市場,對微型電動車的發展「謹慎扶持」。中國微型電動車市場潛力巨大,有車企人士表示,「去年大陸國內銷售達35萬輛左右,今年有望增至50萬輛。」

    中汽協副秘書長葉盛基指出,國家正研究制定相關政策,推動微型電動車向準電動車發展,未來將提升微型電動車的安全標準,確保符合環保要求,並不斷提高微型電動車的電池性能。

    此外,因採取租賃模式,微型電動車在浙江等省份發展迅速,如2,000元人民幣左右就能租到一輛微型電動車,使消費者的用車成本大幅下降,促進了微型電動車的快速成長。

    據瞭解,已在美國納斯達克上市的浙江康迪車業(KNDI.US)是中國微型電動車的代表企業,受益於新能源汽車產業的廣闊空間,公司股價自去年底以來已創歷史新高。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

    新北清潔公司,居家、辦公、裝潢細清專業服務

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

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

    ※超省錢租車方案

    FB行銷專家,教你從零開始的技巧

  • 去年四季度Model S大賣6900輛 特斯拉股價飆

    雖然美國電動車製造商特斯拉(Tesla)日前召回了2.9萬個充電器轉接頭,使Model S安全疑慮再起,但Tesla週二公布,2013年第4季(10~12月)Model S高級房車大賣6900輛,銷量與營收年增率可望雙雙超越20%。

    據特斯拉提交美國國家公路交通安全管理局(NHTSA)的文件表示,2013年出廠的Model S充電器轉接頭藏有過熱可能性,「可能造成轉接頭融化,且在最遭情況下可能起火」。去年Model S一共傳出3起事故,全因車輛行駛時遭重物撞裂底盤電池防護蓋才起火,但3起事故皆未造成人員傷亡。

    特斯拉周二發表的銷售數字再度驗證,消費者對Model S的信心絲毫不減。特斯拉近來不僅獲得多方產業專家肯定Model S安全性,也在美國增設快速充電的「超級充電站」,估計不久後用戶橫跨美國就不用擔心沒電。

    Model S是特斯拉的主打車型,已有超過2.5萬輛Model S在上路行駛。特斯拉預期今年年底銷售分店應會增設2倍以上,今年特斯拉電動汽車銷量可能會大幅成長。

    Tesla股價在周二收盤大漲16%至161.27美元,創6周以來最大漲幅,周三盤中續漲6%,每股171.37美元。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

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

    ※回頭車貨運收費標準

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

    FB行銷專家,教你從零開始的技巧

  • 北汽集團將成為美國新能源公司Atieva第一大股東

    北京汽車集團有限公司(北汽集團)昨(17)日宣布,與美國新能源公司Atieva簽署股份認購協議,北汽集團將收購Atieva公司25.02%的股份。收購完成後,北汽將成為Atieva的第一大股東,雙方預計在第3年推出與奧迪A6L同等級的電動汽車。

    由於美國電動車大廠特斯拉也正和北汽股份洽談合作事項,昨日北汽旗下的上市公司福田汽車,股價也跟著漲停。

    去年,北汽集團新成立了新能源汽車公司,而此次收購的美國Atieva公司是一家新能源汽車核心系統提供商,曾主要參與過Tesla Roadster純電動跑車、雪佛蘭Volt插電式混合電動車、奧迪R8純電動跑車的開發。

    北汽集團方面也表示,此次收購主要是為進一步提升北汽集團及下屬公司在新能源汽車尤其是高端純電動汽車領域的設計、研發和制造的能力和水平。

    據悉,北汽由6家股東組成,除北汽集團以51%的股比成為控股股東外,首鋼股份有限公司以18.31%的股比成為第二大股東,其他股東包括北京市國資公司、現代創新控股公司及京能集團,而北京市國資委直屬的投融資平台-北京國有資本經營管理中心也持股5%。

    另據外媒稍早報導,北汽可望在2014年第2季在香港IPO上市,籌資額度或達到20億美元。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

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

    新北清潔公司,居家、辦公、裝潢細清專業服務

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

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

    ※超省錢租車方案

    FB行銷專家,教你從零開始的技巧

  • 將電動車行程提升超10% 英公司開發MSYS動力系統

    據英國媒體報導,英國動力系統設計公司宣佈,該公司正在開發一套名為MSYS的電動汽車動力系統,可以將電動汽車行駛里程增加10%至15%。MSYS系統預計將於2016年投產。

    在英國即將舉辦的未來動力系統會議上,英國動力系統設計公司將發佈高效電動汽車動力系統報告。該動力系統提供了一種新的汽車換擋路徑,而且不會引起扭矩中斷。

    該公司技術總監阿萊克斯•泰利•博達爾表示,該技術可提供55千瓦的持續電力供應,超過2000牛/米的扭矩,其電力動力系統效率可達91%。

    阿萊克斯還透露,MSYS系統避免了其他傳動方法的弊端。雙離合器變速箱(DCT)在離合器開啟或關閉狀態時,都會持續消耗能量。而在換擋時,自動變速器(AMT)會受損於扭矩中斷。此外,基於行星齒輪變速器的自動裝置,則增加了複雜性和成本,並會拖慢速度。

    MSYS系統將提供三種速度傳動裝置,使其換擋和快速換擋都能運用重疊換擋技術。隨著技術的完善,多重比例的選擇對電動汽車的變速會非常有益。

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※超省錢租車方案

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

    ※回頭車貨運收費標準

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

    FB行銷專家,教你從零開始的技巧

  • Spring Boot 2.x基礎教程:Spring Data JPA的多數據源配置

    上一篇我們介紹了在使用JdbcTemplate來做數據訪問時候的多數據源配置實現。接下來我們繼續學習如何在使用Spring Data JPA的時候,完成多數據源的配置和使用。

    添加多數據源的配置

    先在Spring Boot的配置文件application.properties中設置兩個你要鏈接的數據庫配置,比如這樣:

    spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/test1
    spring.datasource.primary.username=root
    spring.datasource.primary.password=123456
    spring.datasource.primary.driver-class-name=com.mysql.cj.jdbc.Driver
    
    spring.datasource.secondary.jdbc-url=jdbc:mysql://localhost:3306/test2
    spring.datasource.secondary.username=root
    spring.datasource.secondary.password=123456
    spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver
    
    # 日誌打印執行的SQL
    spring.jpa.show-sql=true
    # Hibernate的DDL策略
    spring.jpa.hibernate.ddl-auto=create-drop
    

    這裏除了JPA自身相關的配置之外,與JdbcTemplate配置時候的數據源配置完全是一致的

    說明與注意

    1. 多數據源配置的時候,與單數據源不同點在於spring.datasource之後多設置一個數據源名稱primarysecondary來區分不同的數據源配置,這個前綴將在後續初始化數據源的時候用到。
    2. 數據源連接配置2.x和1.x的配置項是有區別的:2.x使用spring.datasource.secondary.jdbc-url,而1.x版本使用spring.datasource.secondary.url。如果你在配置的時候發生了這個報錯java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.,那麼就是這個配置項的問題。

    初始化數據源與JPA配置

    完成多數據源的配置信息之後,就來創建個配置類來加載這些配置信息,初始化數據源,以及初始化每個數據源要用的JdbcTemplate。

    由於JPA的配置要比JdbcTemplate的負責很多,所以我們將配置拆分一下來處理:

    1. 單獨建一個多數據源的配置類,比如下面這樣:
    @Configuration
    public class DataSourceConfiguration {
    
        @Primary
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.primary")
        public DataSource primaryDataSource() {
            return DataSourceBuilder.create().build();
        }
    
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource.secondary")
        public DataSource secondaryDataSource() {
            return DataSourceBuilder.create().build();
        }
    
    }
    

    可以看到內容跟JdbcTemplate時候是一模一樣的。通過@ConfigurationProperties可以知道這兩個數據源分別加載了spring.datasource.primary.*spring.datasource.secondary.*的配置。@Primary註解指定了主數據源,就是當我們不特別指定哪個數據源的時候,就會使用這個Bean真正差異部分在下面的JPA配置上。

    1. 分別創建兩個數據源的JPA配置。

    Primary數據源的JPA配置:

    @Configuration
    @EnableTransactionManagement
    @EnableJpaRepositories(
            entityManagerFactoryRef="entityManagerFactoryPrimary",
            transactionManagerRef="transactionManagerPrimary",
            basePackages= { "com.didispace.chapter38.p" }) //設置Repository所在位置
    public class PrimaryConfig {
    
        @Autowired
        @Qualifier("primaryDataSource")
        private DataSource primaryDataSource;
    
        @Autowired
        private JpaProperties jpaProperties;
        @Autowired
        private HibernateProperties hibernateProperties;
    
        private Map<String, Object> getVendorProperties() {
            return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
        }
    
        @Primary
        @Bean(name = "entityManagerPrimary")
        public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
            return entityManagerFactoryPrimary(builder).getObject().createEntityManager();
        }
    
        @Primary
        @Bean(name = "entityManagerFactoryPrimary")
        public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) {
            return builder
                    .dataSource(primaryDataSource)
                    .packages("com.didispace.chapter38.p") //設置實體類所在位置
                    .persistenceUnit("primaryPersistenceUnit")
                    .properties(getVendorProperties())
                    .build();
        }
    
        @Primary
        @Bean(name = "transactionManagerPrimary")
        public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {
            return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());
        }
    
    }
    

    Secondary數據源的JPA配置:

    @Configuration
    @EnableTransactionManagement
    @EnableJpaRepositories(
            entityManagerFactoryRef="entityManagerFactorySecondary",
            transactionManagerRef="transactionManagerSecondary",
            basePackages= { "com.didispace.chapter38.s" }) //設置Repository所在位置
    public class SecondaryConfig {
    
        @Autowired
        @Qualifier("secondaryDataSource")
        private DataSource secondaryDataSource;
    
        @Autowired
        private JpaProperties jpaProperties;
        @Autowired
        private HibernateProperties hibernateProperties;
    
        private Map<String, Object> getVendorProperties() {
            return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
        }
    
        @Bean(name = "entityManagerSecondary")
        public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
            return entityManagerFactorySecondary(builder).getObject().createEntityManager();
        }
    
        @Bean(name = "entityManagerFactorySecondary")
        public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) {
            return builder
                    .dataSource(secondaryDataSource)
                    .packages("com.didispace.chapter38.s") //設置實體類所在位置
                    .persistenceUnit("secondaryPersistenceUnit")
                    .properties(getVendorProperties())
                    .build();
        }
    
        @Bean(name = "transactionManagerSecondary")
        PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) {
            return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject());
        }
    
    }
    

    說明與注意

    • 在使用JPA的時候,需要為不同的數據源創建不同的package來存放對應的Entity和Repository,以便於配置類的分區掃描
    • 類名上的註解@EnableJpaRepositories中指定Repository的所在位置
    • LocalContainerEntityManagerFactoryBean創建的時候,指定Entity所在的位置
    • 其他主要注意在互相注入時候,不同數據源不同配置的命名,基本就沒有什麼大問題了

    測試一下

    完成了上面之後,我們就可以寫個測試類來嘗試一下上面的多數據源配置是否正確了,比如下面這樣:

    @Slf4j
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Chapter38ApplicationTests {
    
        @Autowired
        private UserRepository userRepository;
        @Autowired
        private MessageRepository messageRepository;
    
        @Test
        public void test() throws Exception {
            userRepository.save(new User("aaa", 10));
            userRepository.save(new User("bbb", 20));
            userRepository.save(new User("ccc", 30));
            userRepository.save(new User("ddd", 40));
            userRepository.save(new User("eee", 50));
    
            Assert.assertEquals(5, userRepository.findAll().size());
    
            messageRepository.save(new Message("o1", "aaaaaaaaaa"));
            messageRepository.save(new Message("o2", "bbbbbbbbbb"));
            messageRepository.save(new Message("o3", "cccccccccc"));
    
            Assert.assertEquals(3, messageRepository.findAll().size());
        }
    
    }
    

    說明與注意

    • 測試驗證的邏輯很簡單,就是通過不同的Repository往不同的數據源插入數據,然後查詢一下總數是否是對的
    • 這裏省略了Entity和Repository的細節,讀者可以在下方代碼示例中下載完整例子對照查看

    代碼示例

    本文的相關例子可以查看下面倉庫中的chapter3-8目錄:

    • Github:https://github.com/dyc87112/SpringBoot-Learning/
    • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

    如果您覺得本文不錯,歡迎Star支持,您的關注是我堅持的動力!

    相關閱讀

    • Spring Boot 1.x基礎教程:多數據源配置

    本文首發:Spring Boot 2.x基礎教程:Spring Data JPA的多數據源配置,轉載請註明出處。
    歡迎關注我的公眾號:程序猿DD,獲得獨家整理的學習資源和日常乾貨推送。
    如果您對我的其他專題內容感興趣,直達我的個人博客:didispace.com。

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

    【其他文章推薦】

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

    新北清潔公司,居家、辦公、裝潢細清專業服務

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

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

    ※超省錢租車方案

    FB行銷專家,教你從零開始的技巧