IntellJ IDEA使用及配置雜記

前言

本人項目多用Java語言開發(fā),且IDE主要是IntelliJ IDEA2019.1 x64版本,由于在IDEA工具的使用上,本人有時也是一知半解,遇到問題就百度搜索,然而網(wǎng)上很多資料參差不齊,故想著將自己遇到的問題整理總結(jié),希望能對你有所幫助,我盡量會整理詳細些,如有不懂或描述不恰當?shù)牡胤剑埩粞灾赋?,謝謝~

問題一:Maven項目JDK與本機JDK版本不一致

描述:本人安裝的JDK版本是1.8,每當我創(chuàng)建一個Maven工程后,項目的默認JDK版本默認是1.5,而且每次我重新打開項目或者掛著項目沒操作后,即使更改為JDK1.8也會被默默改回JDK1.5。出現(xiàn)問題如下:

Lambda表達式無法使用
編譯時程序報錯

下面介紹兩種方法解決,第一種比較笨且為臨時的,第二種較好。

解決方法一:修改項目JDK版本

  1. 打開Settings窗口(快捷鍵Ctrl + Alt + S):File -> Settings
Setting窗口修改Java Compiler

修改JDK版本為8

  1. 打開Project Structure窗口(快捷鍵Ctrl + Alt + Shift + S):File -> Project Structure
Project JDK版本是否對應(yīng)
Modules source的JDK是否對應(yīng)

逐一修改每個項目的JDK版本,Apply即可解決

存在不足:臨時性修改,下一次重啟有可能會出現(xiàn)版本不一致問題

解決方法二:pom文件約定JDK版本

在pom.xml文件中添加如下插件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <properties>
        <java.version>1.8</java.version>
        <maven.version>3.5.1</maven.version>
    </properties>
    <build>
        <plugins>
            <!--調(diào)整modules的language level為8-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

<project></project>都貼上了,免得你不知道放在哪里,嘿嘿

如果你的項目是多個模塊,那么只需要在主模塊中添加

可以一勞永逸解決

問題二:如何生成IDEA自定義代碼模板

例如上一個問題中的代碼塊,如果每次使用時,都需要找到對應(yīng)的代碼進行復(fù)制粘貼,很繁瑣,好在IDEA提供了一個Live Templates功能,能夠自定義代碼模板,只需要輸入相應(yīng)的快捷方式就能自動生成,類似于psvmIDEA就能自動填充為public static void main(String[] args)一樣。

  • 打開Settings窗口(快捷鍵Ctrl + Alt + S):File -> Settings
Editor下的Live Templates
  • 創(chuàng)建一個Template Group
創(chuàng)建Template Group
  • 在新建的Template Group下創(chuàng)建Live Template
創(chuàng)建Live Template
  • 創(chuàng)建Live Template
創(chuàng)建Live Template

其中maven_jdk_setting類似于psvm,設(shè)置作用在xml文件中

  • 效果圖如下:
快捷方式生成自定義代碼模塊
效果圖

個人常用模板

  • 熱部署插件(devtools_build)

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • JPA對應(yīng)的persistence_xml的文件格式(jpa_persistence_xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
        <!--需要配置persistence-unit節(jié)點
            持久化單元:
                name:持久化單元名稱
                transaction-type:事務(wù)管理的方式
                        JTA:分布式事務(wù)管理
                        RESOURCE_LOCAL:本地事務(wù)管理
        -->
        <persistence-unit name="myJpa" transaction-type="RESOURCE_LOCAL">
            <!--jpa的實現(xiàn)方式 -->
            <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    
            <!--可選配置:配置jpa實現(xiàn)方的配置信息-->
            <properties>
                <!-- 數(shù)據(jù)庫信息
                    用戶名,javax.persistence.jdbc.user
                    密碼,  javax.persistence.jdbc.password
                    驅(qū)動,  javax.persistence.jdbc.driver
                    數(shù)據(jù)庫地址   javax.persistence.jdbc.url
                -->
                <property name="javax.persistence.jdbc.user" value="root"/>
                <property name="javax.persistence.jdbc.password" value="root"/>
                <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql:///db1"/>
    
                <!--配置jpa實現(xiàn)方(hibernate)的配置信息
                    顯示sql           :   false|true
                    自動創(chuàng)建數(shù)據(jù)庫表    :  hibernate.hbm2ddl.auto
                            create      : 程序運行時創(chuàng)建數(shù)據(jù)庫表(如果有表,先刪除表再創(chuàng)建)
                            update      :程序運行時創(chuàng)建表(如果有表,不會創(chuàng)建表)
                            none        :不會創(chuàng)建表
    
                -->
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.hbm2ddl.auto" value="update" />
            </properties>
        </persistence-unit>
    </persistence>
    
  • mybatis的application配置yml文件(mybatis_applicaiton_yml)

    # 數(shù)據(jù)源配置
    spring:
      datasource:
        # url username password TODO
        url: jdbc:mysql://localhost:3306/數(shù)據(jù)庫名稱?useUnicode=true&characterEncoding=utf8
        username: 用戶名
        password: 密碼
        driver-class-name: com.mysql.jdbc.Driver
    # MyBatis配置
    mybatis:
      # type-aliases-package mapper-locations TODO
      type-aliases-package: cn.tod.mybatisgenerator.entity
      mapper-locations: classpath:cn.tod.mybatisgenerator.mapper/*.xml
    
    # mybatis.config = mybatis 配置?件名稱
    # mybatis.mapperLocations = mapper xml ?件地址 #
    # mybatis.typeAliasesPackage = 實體類包路徑
    # mybatis.typeHandlersPackage = type handlers 處理器包路徑
    # mybatis.check-config-location = 檢查 mybatis 配置是否存在,?般命名為 mybatis-config.xml
    # mybatis.executorType = 執(zhí)?模式。默認是 SIMPLE
    
  • mybatis對應(yīng)的config_xml文件格式(mybatis_config_xml)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!-- 配置 mybatis 的環(huán)境 -->
        <environments default="mysql">
            <!-- 配置 mysql 的環(huán)境 -->
            <environment id="mysql">
                <!-- 配置事務(wù)的類型 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 配置連接數(shù)據(jù)庫的信息:用的是數(shù)據(jù)源(連接池) -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/數(shù)據(jù)庫名"/>
                    <property name="username" value="用戶名"/>
                    <property name="password" value="密碼"/>
                </dataSource>
            </environment>
        </environments>
        <!-- 告知 mybatis 映射配置的位置:基于xml配置 -->
        <mappers>
            <mapper resource="cn/tod/mybatis/dao/IUserDao.xml"/>
            <!-- <mapper class="cn.tod.mybatis.dao.IUserDao"/> -->
        </mappers>
    </configuration>
    
  • mybatis對應(yīng)的config_xml文件配置(基于注解配置)(mybatis_config_xml_annotation)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!-- 配置 mybatis 的環(huán)境 -->
        <environments default="mysql">
            <!-- 配置 mysql 的環(huán)境 -->
            <environment id="mysql">
                <!-- 配置事務(wù)的類型 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 配置連接數(shù)據(jù)庫的信息:用的是數(shù)據(jù)源(連接池) -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/數(shù)據(jù)庫名"/>
                    <property name="username" value="用戶名"/>
                    <property name="password" value="密碼"/>
                </dataSource>
            </environment>
        </environments>
        <!-- 告知 mybatis 映射配置的位置:基于注解配置,需要刪除對應(yīng)的mapper.xml -->
        <mappers>
            <mapper class="cn.tod.mybatis.dao.IUserDao"/>
        </mappers>
    </configuration>
    
  • mybatis對應(yīng)的mapper_xml文件格式(mybatis_mapper_xml)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="cn.tod.mybatis.dao.IUserDao">
        <select id="findAll" resultType="cn.tod.mybatis.entity.User">
            SELECT * FROM user
        </select>
    </mapper>
    
  • mybatisgenerator的pom插件(mybatisgenerator_build_pom_xml)

    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!--其中g(shù)eneratorConfig.xml的位置,大家根據(jù)實際情況自行調(diào)整-->
                    <configurationFile>src/main/resources/MybatisGeneratorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.2</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.47</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    
  • mybatisgenerator的配置文件(mybatisgenerator_config_xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration
            PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!-- 手動導(dǎo)入mybatis-generator-config_1_0.dtd-->
    <!--因為生成過程中需要連接db,所以第3行指定了驅(qū)動jar包的位置-->
    <generatorConfiguration>
        <!--    <classPathEntry-->
        <!--            location="C:/Oracle/Middleware/wlserver_10.3/server/lib/ojdbc6.jar"/>-->
        <context id="my" targetRuntime="MyBatis3">
            <!-- 指定生成的java文件的編碼,沒有直接生成到項目時中文可能會亂碼 -->
            <property name="javaFileEncoding" value="UTF-8"/>
            <commentGenerator>
                <property name="suppressDate" value="false"/>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <!-- oracle配置 -->
            <!--             <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                        connectionURL="jdbc:oracle:thin:@***:1521:orcl" userId="***"
                        password="***">
                        針對oracle數(shù)據(jù)庫
                        <property name="remarksReporting" value="true"></property>
                    </jdbcConnection> -->
    
            <!-- mysql配置 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/數(shù)據(jù)庫名?useUnicode=true"
                            userId="用戶名"
                            password="密碼"><!--connectionURL userId password TODO-->
                <!-- 針對mysql數(shù)據(jù)庫 -->
                <property name="useInformationSchema" value="true"></property>
            </jdbcConnection>
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!--19-33行指定生成“entity實體類、mybatis映射xml文件、mapper接口”的具體位置-->
            <javaModelGenerator targetPackage="cn.tod.mybatisgenerator.entity"
                                targetProject="src\main\java"><!--targetPackage TODO-->
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
            <sqlMapGenerator targetPackage="cn.tod.mybatisgenerator.mapper"
                             targetProject="src\main\resources"><!--targetPackage TODO-->
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <javaClientGenerator targetPackage="cn.tod.mybatisgenerator.mapper"
                                 targetProject="src\main\java" type="XMLMAPPER"><!--targetPackage TODO-->
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
    
            <!--40-46行為具體要生成的表,如果有多個表,復(fù)制這一段,改下表名即可-->
            <table tableName="userinfo" domainObjectName="UserInfo"
                   enableCountByExample="false" enableUpdateByExample="false"
                   enableDeleteByExample="false" enableSelectByExample="false"
                   selectByExampleQueryId="false"><!--tableName domainObjectName TODO-->
            </table>
        </context>
    </generatorConfiguration>
    
  • spring基于aop的bean_xml文件格式(spring_aop_bean_xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">
        <!-- bean 標簽:用于配置讓 spring 創(chuàng)建對象,并且存入 ioc 容器之中
                id 屬性:對象的唯一標識。
                class 屬性:指定要創(chuàng)建對象的全限定類名
                -->
        <!-- 配置 service -->
        <bean id="accountService" class="cn.tod.spring.aop.xml.service.impl.AccountServiceImpl">
            <property name="IAccountDao" ref="accountDao"/>
        </bean>
        <!-- 配置 dao -->
        <bean id="accountDao" class="cn.tod.spring.aop.xml.dao.impl.AccountDaoImpl">
            <property name="queryRunner" ref="queryRunner"/>
            <property name="connectionUtils" ref="connectionUtils"/>
        </bean>
        <bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype"/>
        <bean id="connectionUtils" class="cn.tod.spring.aop.xml.utils.ConnectionUtils">
            <property name="threadLocal" ref="threadLocal"/>
            <property name="dataSource" ref="dataSource"/>
        </bean>
        <bean id="threadLocal" class="java.lang.ThreadLocal"/>
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="com.mysql.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db1"/>
            <property name="user" value="root"/>
            <property name="password" value="root"/>
        </bean>
    
        <!-- 配置通知 -->
        <bean id="transactionManager" class="cn.tod.spring.aop.xml.utils.TransactionManager">
            <property name="connectionUtils" ref="connectionUtils"/>
        </bean>
        <!-- 使用aop:config聲明aop配置 -->
        <aop:config>
    <!--        &lt;!&ndash; 使用aop:aspect配置切面 &ndash;&gt;-->
    <!--        <aop:aspect id="transactionAdvice" ref="transactionManager">-->
    <!--            &lt;!&ndash; 使用aop:before配置前置通知 &ndash;&gt;-->
    <!--            <aop:before method="beginTransaction" pointcut-ref="pc1"/>-->
    <!--            &lt;!&ndash; 使用aop:pointcut配置切入點表達式 &ndash;&gt;-->
    <!--            &lt;!&ndash; * 代表任意 返回值、包、類名、數(shù)據(jù)類型, ..可以表示參數(shù)列表有無參數(shù)均可、當前包及其子包 &ndash;&gt;-->
    <!--&lt;!&ndash;            <aop:pointcut id="pc1" expression="execution(&ndash;&gt;-->
    <!--&lt;!&ndash;                public void cn.tod.spring.aop.xml.service.impl.AccountServiceImpl.transfer(&ndash;&gt;-->
    <!--&lt;!&ndash;                    java.lang.String, java.lang.String, java.lang.Double&ndash;&gt;-->
    <!--&lt;!&ndash;                )&ndash;&gt;-->
    <!--&lt;!&ndash;            )"/>&ndash;&gt;-->
    <!--            <aop:pointcut id="pc1" expression="execution(-->
    <!--                * cn.tod.spring.aop.xml.service.impl.*.*(..)-->
    <!--            )"/>-->
    <!--            &lt;!&ndash; 使用aop:after-returning配置后置通知 &ndash;&gt;-->
    <!--            <aop:after-returning method="commit" pointcut-ref="pc1"/>-->
    <!--            &lt;!&ndash; 使用aop:after-throwing配置異常通知 &ndash;&gt;-->
    <!--            <aop:after-throwing method="rollback" pointcut-ref="pc1"/>-->
    <!--            &lt;!&ndash; 使用aop:after配置最終通知 &ndash;&gt;-->
    <!--            <aop:after method="release" pointcut-ref="pc1"/>-->
    <!--        </aop:aspect>-->
            <aop:pointcut id="pc1" expression="execution(
                * cn.tod.spring.aop.xml.service.impl.*.*(..)
            )"/>
            <aop:aspect id="transactionAdvice" ref="transactionManager">
                <!-- 配置環(huán)繞通知 -->
                <aop:around method="transactionAround" pointcut-ref="pc1"/>
            </aop:aspect>
        </aop:config>
    </beans>
    
  • spring對應(yīng)的注解方式的bean_xml文件格式(spring_bean_annotation_xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
        <!-- 告知 spring 創(chuàng)建容器時要掃描的包 -->
        <context:component-scan base-package="cn.tod.spring.annotation"/>
        <!-- 配置數(shù)據(jù)源 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="com.mysql.jdbc.Driver"/>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db1"/>
            <property name="user" value="root"/>
            <property name="password" value="root"/>
        </bean>
        <!-- 配置JdbcTemplate -->
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"/>
        </bean>
    </beans>
    
  • spring對應(yīng)的bean_xml文件格式(spring_bean_xml)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
        <!-- bean 標簽:用于配置讓 spring 創(chuàng)建對象,并且存入 ioc 容器之中
                id 屬性:對象的唯一標識。
                class 屬性:指定要創(chuàng)建對象的全限定類名
                -->
        <!-- 配置 service -->
        <bean id="accountService" class="cn.tod.spring.service.impl.AccountServiceImpl">
            <!-- 給數(shù)組注入數(shù)據(jù) -->
            <property name="myStrs">
                <set>
                    <value>AAA</value>
                    <value>bbb</value>
                    <value>CCC</value>
                </set>
            </property>
            <!-- 注入 list 集合數(shù)據(jù) -->
            <property name="myList">
                <array>
                    <value>DDD</value>
                    <value>eee</value>
                    <value>FFF</value>
                </array>
            </property>
            <!-- 注入 set 集合數(shù)據(jù) -->
            <property name="mySet">
                <list>
                    <value>GGG</value>
                    <value>GGG</value>
                    <value>hhh</value>
                </list>
            </property>
            <!-- 注入 Map 數(shù)據(jù) -->
            <property name="myMap">
                <props>
                    <prop key="AAA">aaa</prop>
                    <prop key="BBB">bbb</prop>
                </props>
            </property>
            <!-- 注入 properties 數(shù)據(jù) -->
            <property name="myProps">
                <map>
                    <entry key="AAA" value="aaa"/>
                    <entry key="BBB">
                        <value>bbb</value>
                    </entry>
                </map>
            </property>
        </bean>
        <!-- 配置 dao -->
        <bean id="accountDao" class="cn.tod.spring.dao.impl.AccountDaoImpl">
    <!--        <constructor-arg name="name" value="Tod"/>-->
    <!--        <constructor-arg name="age" value="25"/>-->
    <!--        <constructor-arg name="birthday" ref="yesterday"/>-->
            <property name="name" value="Jim"/>
            <property name="age" value="24"/>
            <property name="birthday" ref="yesterday"/>
        </bean>
        <bean id="yesterday" class="java.util.Date"/>
    </beans>
    

問題三:如何使用IDEA自動生成實體類的serialVersionUID

有時候我們?yōu)榱朔乐箤嶓w類在存儲中被人為修改,需要實現(xiàn)實體類的序列化機制,實現(xiàn)Serializable接口,同時定義一個唯一的SerializeUID,代碼如下:

import java.io.Serializable;

public class User implements Serializable {
    private static final long serialVersionUID = 2588932577248604962L;
}

serialVersionUID可以自己定義,也可以有IDEA自動生成,只要保證唯一即可

下面講一下如何使用IDEA自動生成serialVersionUID

  • 打開Settings窗口(快捷鍵Ctrl + Alt + S):File -> Settings
設(shè)置中打開生成serialVersionUID警告

搜索serialize,選擇實現(xiàn)Serializable接口的類沒有定以serialVersionUID會有警告提示

  • 生成實體類的serialVersionUID
生成serialVersionUID

在實體類名稱上按下Alt + Enter快捷鍵

效果圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容