より軽量なフレームワークSpringboot学習

55155 ワード

SpringBoot学習
###踏んだ穴:Ctrl+alt+L:列編集(使いにくい(Ctrl+altを手放さない):::alt+プラスプル(ソースモード)typoraの好み設定には、復元前に保存されていなかったファイルが入っていて、強すぎて、粉が!!!

        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
            <scope>providedscope>
        dependency>



   SpringBoot    war ,    Tomcat           :
 <ol>
     <li> pom      warli>
     <li> spring-boot-starter-tomcat     providedli>
     <li>        li>
 ol>

SpringBootでは、デフォルト設定の/**が/staticにマッピングされます.静的リソースマッピングには、ここで簡単に使用するための構成オプションもある.properties方式で書く:
spring.mvc.static-path-pattern=/** # Path pattern used for static resources.
この構成はデフォルトの/**に影響します.たとえば、/static/**に変更すると、/static/js/sampleのようなマッピングしかできません.jsというリクエスト(修正前は/js/sample.js).この構成では、カンマで区切られた複数の値を構成できるのではなく、1つの値しか書けません.
アプリケーションでymlファイルには階層構造(ideaのヒント)に厳格に従って書いても間違いありません!
SpringBootビュー
Thymeleaf
    (springBoot     )

<html lang="en" xmlns:th="http://www.thymeleaf.org">

		<dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>

...
SpringBootの運転方式
  • はIDEAで直接入口クラス
  • を実行する.
  • Spring-boot-maven-pluginで実行可能なjarパッケージにし、Java-jarで
  • を実行する
  • mvc spring-boot:runにより
  • を実行
    パッケージの導入:
    JArパッケージ
    SpringBootは、SpringBootが提供するパッケージプラグインを通じて、プロジェクトを実行可能なjarパッケージにパッケージ化することを提案しています(このjarパッケージにはTomcatが内蔵されており、直接webとして走ることができます)、導入と管理が便利です.
    コンパイルプラグインの追加(start.spring.ioで作成されたプロジェクトのデフォルト)
    
    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        
        <packaging>jarpackaging>
        
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-maven-pluginartifactId>
                    <configuration>
                        <fork>truefork>
                    configuration>
                plugin>
            plugins>
        build>
    project>
    

    そしてそのまま
    $ mvn clean package
    $ java -jar target/mymodule-0.0.1-SNAPSHOT.jar
    

    src/main/webappディレクトリを使用するとjarパケットにすると、そのディレクトリのすべてのファイルが無視されます.この場合、warパケットを打つ方法しか選択できません.
    warパッケージ
    主に二つのステップに分かれている
    最初のステップはpomを変更します.xml
    構成例:pom.xml
    
    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        
        <packaging>warpackaging>
        
        <dependencies>
        
        <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-tomcatartifactId>
                <scope>providedscope>
            dependency>
            
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
            <dependency>
                <groupId>javax.servletgroupId>
                <artifactId>jstlartifactId>
            dependency>
                
        <dependency>
                <groupId>org.apache.tomcat.embedgroupId>
                <artifactId>tomcat-embed-jasperartifactId>
                <scope>providedscope>
            dependency>
            
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <scope>testscope>
            dependency>
        dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-maven-pluginartifactId>
                plugin>
                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-surefire-pluginartifactId>
                    <configuration>
                        <useSystemClassLoader>falseuseSystemClassLoader>
                    configuration>
                plugin>
            plugins>
        build>
    project>
    

    ステップ2起動クラスの登録
    サーブレットInitializerの作成JAvaは、SpringBootServiceletInitializerを継承し、configure()を上書きし、起動クラスApplicationを登録します.外部WebアプリケーションサーバがWebアプリケーションContextを構築する場合、起動クラスが追加されます.
    public class ServletInitializer extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    }
    

    Mybatisインバースエンジニアリングプラグインテンプレート
    generatorConfig.xmlのプロファイルは以前にアップロードされていました.
     //         mysql——springboot    scope runtime
    		<dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>8.0.18version>
            dependency>
    
    
                <plugin>
                    <groupId>org.mybatis.generatorgroupId>
                    <artifactId>mybatis-generator-maven-pluginartifactId>
                    <version>1.3.7version>
                    <executions>
                        <execution>
                            <id>Generate MyBatis Artifactsid>
                            <goals>
                                <goal>generategoal>
                            goals>
                        execution>
                    executions>
                    <configuration>
                        
                        
                        <configurationFile>${basedir}/src/main/resources/mybatis/generatorConfig.xmlconfigurationFile>
                        <includeCompileDependencies>trueincludeCompileDependencies>
                        <overwrite>trueoverwrite>
                    configuration>
                plugin>
    

    SpringBoot-SM統合
    ステップ1:
    構成pom.xmlおよびMybatis逆工程の生成
    ステップ2
    起動クラスの識別
    ステップ3
    application.yml構成記入
    ステップ4
    書く必要があります(階層で始められます)
    ThymeleafテンプレートエンジンがJSPビューに取って代わる
    SpringBootはJSPビューの代わりにThymeleafテンプレートエンジンを使用することを公式に提案していますが、JSPを使用したい場合はどうすればいいですか?はい、次のステップで構成すればいいです.
    ステップ1:pomを変更するxmlでのパッケージ方式はwar
    
         ...
        war
         ...
    
    

    ステップ2:JSP依存の追加
    
    
        org.apache.tomcat.embed
        tomcat-embed-jasper
    
    
    

    ステップ3:InternalResourceViewResolverパラメータの構成
    spring:
      mvc:
        view:
          prefix: /WEB-INF/ #  JSP    
          suffix: .jsp      #  JSP    
    
    

    注意:1、jspページは必ずwebappディレクトリまたはwebapp/WEB-INF/下2に置かなければならない.jspをビューとして使用した場合、エンジニアリングはwarパッケージとしてしか配置できない(jarパッケージはwebappディレクトリの下のものを打ち込まないため)
    ピットを踏む
    mybatis:  mapper-locations: classpath:/mybatis/mappers/*.xml
    
    
    config-location: 
    
    
  • Dateクラス解決
  • Spring Bootプロジェクトで=@RestControl==注記を使用して、返されるjavaオブジェクトにdateタイプのプロパティが含まれている場合、デフォルト出力はTIMESTAMPタイムスタンプフォーマット
  • です.
    アプリケーションでpropertiesプロファイルには、次の構成が追加されます.
    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=GMT+8
    #       bean  date       @JSONFormat("yyyy-MM-dd HH:mm:ss")
    
    
  • Spring Bootプロジェクトで=@Controller==注記を使用してModelに格納されているjavaオブジェクトにdateタイプのプロパティが含まれている場合、デフォルトはGBKフォーマット
  • です.
    #dates.format()
             
    
    ${#dates.format(date, 'dd/MMM/yyyy HH:mm')}
    ${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}
    ${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}
    ${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}
    
    <!--  ——>
    
    <td th:text="${#dates.format(book.publish, 'yyyy-MM-dd HH:mm')}">td>
    
    
  • @InitBinderは、@Controllerでメソッドに落札するために使用され、現在のコントローラにプロパティエディタまたはその他を登録し、現在のコントローラにのみ有効であることを示します.一方、@ControllerはDateクラス
  • を明示的に存在しなければならない.
    @InitBinderpublic void initBinder(ServletRequestDataBinder binder) {  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
    }
    
    
    /**
     *   handler       
     * @author zhanghang
     * @date 2018/1/11
     */
    @Component
    public class DateConverterConfig implements Converter<String, Date> {
    
        private static final List<String> formarts = new ArrayList<>(4);
        static{
            formarts.add("yyyy-MM");
            formarts.add("yyyy-MM-dd");
            formarts.add("yyyy-MM-dd hh:mm");
            formarts.add("yyyy-MM-dd hh:mm:ss");
        }
    
        @Override
        public Date convert(String source) {
            String value = source.trim();
            if ("".equals(value)) {
                return null;
            }
            if(source.matches("^\\d{4}-\\d{1,2}$")){
                return parseDate(source, formarts.get(0));
            }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
                return parseDate(source, formarts.get(1));
            }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
                return parseDate(source, formarts.get(2));
            }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
                return parseDate(source, formarts.get(3));
            }else {
                throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
            }
        }
    
        /**
         *      
         * @param dateStr String      
         * @param format String   
         * @return Date   
         */
        public  Date parseDate(String dateStr, String format) {
            Date date=null;
            try {
                DateFormat dateFormat = new SimpleDateFormat(format);
                date = dateFormat.parse(dateStr);
            } catch (Exception e) {
    
            }
            return date;
        }
    
    }
    //       、、、、、、、
    
    
  • layUIのテーブルcols[{}]]とthymeleafのインライン式の競合は、競合cols[{}]]
  • を簡単に変更するために、このように書く必要があります.
  • bannerファイル
  • /*SpringApplication.run(SpringbootSsmApplication.class, args);*/
    
    
    //  
    
    //  banner
    SpringApplicationBuilder sub
    = new SpringApplicationBuilder(SpringbootSsmApplication.class);
    
    sub.bannerMode(Banner.Mode.OFF).run(args);
    
    
  • 面白い
  • table, tr, td, th {   
        /*                  :collapse、separate*/   
        border-collapse: separate;
    }
    
    
     /* HTML ,        。rel                     。*/  
    "stylesheet" href="/static/css/table_y.css">
    
    
    "text/javascript"</span> src=<span class="token string">"myscripts.js"</span>>   !
    
    </code></pre> 
      <h1><strong>  import:</strong></h1> 
      <h3>SpringBoot 2.1    Tomcat    10M      </h3> 
      <pre><code class="prism language-Java">@Bean
    public TomcatServletWebServerFactory tomcatEmbedded() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
                //-1 means unlimited
                ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
            }
        });
        return tomcat;
    }
    
    </code></pre> 
      <h3>SpringBoot 1.5    Tomcat      10M    </h3> 
      <pre><code class="prism language-java"><span class="token annotation punctuation">@Bean</span>
    <span class="token keyword">public</span> TomcatEmbeddedServletContainerFactory <span class="token function">tomcatFactory</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        TomcatEmbeddedServletContainerFactory tomcatFactory <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">TomcatEmbeddedServletContainerFactory</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        tomcatFactory<span class="token punctuation">.</span><span class="token function">addConnectorCustomizers</span><span class="token punctuation">(</span><span class="token punctuation">(</span>TomcatConnectorCustomizer<span class="token punctuation">)</span> connector <span class="token operator">-</span><span class="token operator">></span> <span class="token punctuation">{</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>connector<span class="token punctuation">.</span><span class="token function">getProtocolHandler</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">instanceof</span> <span class="token class-name">AbstractHttp11Protocol</span><span class="token operator"><</span><span class="token operator">?</span><span class="token operator">></span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token comment">//-1 means unlimited</span>
                <span class="token punctuation">(</span><span class="token punctuation">(</span>AbstractHttp11Protocol<span class="token operator"><</span><span class="token operator">?</span><span class="token operator">></span><span class="token punctuation">)</span> connector<span class="token punctuation">.</span><span class="token function">getProtocolHandler</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">setMaxSwallowSize</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> tomcatFactory<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    
    </code></pre> 
     </div> 
    </div>
                                </div>
                            </div>
                        </div>
                        <!--PC WAP    -->
                        <div id="SOHUCS" sid="1278128051439288320"></div>
                        <script type="text/javascript" src="/views/front/js/chanyan.js">
                        
                         
                    
    興味があるかもしれません
  • ASMシリーズ6 TreeApiによるクラスメンバーの追加と削除
    lijingyao8206
    jvm ダイナミックエージェント ASM バイトコード技術 TreeAPI
  • Springmvc-パーミッション設計
    bee1314
    spring Web jsp
  • アルゴリズムコンテスト入門経典(第2版)第2章練習問題
    CrazyMizzz
    c アルゴリズム#アルゴリズム#
  • struts 2でjspが自動的にActionにジャンプ
    麦畑の設計者
    jsp webxml struts2 じどうジャンプ
  • php操作webserviceインスタンス
    IT独行者
    PHP webservice
  • WindowsでVagrantを使用してlinuxシステムをインストールする
    _wy_
    windows vagrant
  • linuxのファイル所有者およびユーザーグループ(chownおよびchgrp)の変更
    むりょう
    c linux chgrp chown
  • linux下パッケージツール
    矮蛋
    linux
  • アルファベットで分類:
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その他
    トップページ -
    私たちについて -
    構内検索 -
    Sitemap -
    権利侵害苦情
    著作権すべてのIT知識ベースCopyRight© 2000-2050 IT知識ベースIT 610.com , All Rights Reserved.
    京ICP備09083238号