SpringMVCプロジェクトをSpringbootに転送する過程で、主に次のことが行われました
何とそれを行う方法を紹介することに加えて、この記事には多くの不必要なナンセンスがあります。原則に関するいくつかの議論のために、あなたはその理由も知っている必要があります。
プロファイル構成
従来の春のプロジェクトでは、複数のプロファイルの構成方法は、POM.xmlファイルに複数のプロファイルを書き込み、プロジェクトを開始する前にMavenファイルを実行して選択したプロファイル環境をプリロードすることです。ロード後、プロジェクトを実行すると、ロードされた環境に基づいてグローバル変数にロードするためにどの.propertiesファイルが決定されます。
スプリングブートで複数のプロファイルを管理するのは非常に簡単です。
コマンドラインを使用してJARパッケージを実行するときにプロファイルを選択できます
Java -jar example.jar - spring.profiles.active = test
または、Global Configuration Application.Propertiesで構成します
spring.profiles.active = application.propertiesでテストを追加します
上記の方法は両方とも「テスト」プロファイルを開始でき、前者は実行が後者よりも優先度が高くなります。
(ちなみに、スプリングブートでは、これらの2つの方法は基本的に「外部構成」メソッドを使用して環境を編集および置き換えます)
さらに、各独立したプロファイルは、異なる環境ごとに「Application-XXX.Properties」という形式で構成されています。
プロファイルが正常にロードされているかどうかをテストする必要がある場合、対応する.propertiesファイルに記述できます
server.port = 9080
このポートがスタートアップで開始されたかどうかを確認できます。
ここでは、Springbootが構成ファイルをロードする順序について言及できます
グローバル変数は、プロパティファイルから読み取られます
前のセクションでは、さまざまな環境のプロパティ構成を書きました。ここでは、これらのプロパティがグローバル変数に書き込まれるかどうかについて書きます。これは、他の場所での直接の呼び出しに便利です。
/*** Global Variable*/Public Class Global {public static String emplerPath; @value( "$ {example_path}")public void setexamplepath(string emple){global.examplepath = examplepath; }}このようにして、.propertiesファイルをに配置します
Example_Path = http:// localhost:9090
このプロパティは、グローバル変数に読み取られます。
データソースとMyBatis構成
従来の春のプロジェクトでは、MyBatisを使用してデータベースに接続します
これはすべて、XML構成ファイルで構成されており、非常に面倒です。スプリングブートでは、このようなXML構成を回避してみてください。
MyBatisは現在、Springbootのサポートを提供しています。 MyBatis-Spring-Boot-Starter依存関係を追加するだけで、次のことを行います。
したがって、スプリングブートのMyBatis構成では、以下を実行する必要があります。
アプリケーションでデータベース情報を入力 - {profile} .propertiesなど:
spring.datasource.url = jdbc:oracle:thin:@// localhost:1234/examplespring.datasource.username = rootspring.datasource.password = 123456spring.datas Oulce.driver-class-name = oracle.jdbc.driver.oracledriverspring.datasource.maxactive = 10spring.datasource.maxidle = 5spring.datasource.maxwait = -1
このようにして、SpringコンテキストでDataSource Beanを登録します。
myBatisconfigファイルを作成し、XMLをJavaに置き換えます。
/*** 2017/12/7にWutaoyuによって作成されました。 */@configuration@enabletransactionmanagement@mapperscan( "com.example.db.dao")パブリッククラスmybatisconfig {@autowired private dataSource dataSource; @bean(name = "sqlsessionfactory")public sqlsessionfactory sqlsessionfactorybean(){sqlsessionfactorybean sqlsession = new sqlsessionfactorybean(); sqlsession.setdatasource(dataSource); try {// XMLディレクトリResourcePatterNresolver Resolver = new PathMatchingResourcePatterNresolver(); sqlsession.setMapperLocations(sloldver.getResources( "classpath:mapping/*。xml")); return sqlsession.getObject(); } catch(Exception e){e.printstacktrace();新しいruntimeexception(e); }} @bean public sqlsessionTemplate sqlsessionTemplate(sqlsessionFactory sqlsessionFactory){return new sqlsessionTemplate(sqlsessionFactory); } @Bean Public PlatformTransactionManager AnnotationDriventransactionManager(){return new DataSourcetransactionManager(dataSource); } @bean(name = "examplesequence")public oraclesequencemaxvalueincrementer examplesequencebean(){oraclesequencemaxvalueincrementer examplesequence = new oraclesequencemaxvalueincrementer(); Examplesequence.setIncrementername( "emple_seq"); Examplesequence.setDataSource(dataSource); examplesequenceを返します。 }} @mapperscanは、このパッケージの下のマッパーをスキャンします。
さらに、Mapper.xmlの場所は、リソースフォルダーの下にマッピングフォルダーを作成し、以下に配置することです。
ここでの関数はXMLに似ています。 .javaファイルで従来のXML式メソッドを説明し、基本的にDataSourceを段階的に挿入することです。
この例ではOracleデータベースを使用するため、最後の試験表示は、シーケンスを追加する方法を説明する例です。
すべてのMappers @Mapperへのインターフェイスの注釈
例えば:
@mapperpublicインターフェイスusermapper {...}ログファイルの構成
Logbackはプロパティの形式での外部構成をサポートしますが、比較的詳細な構成の場合、XML構成を使用する必要があります。
XMLファイルが.propertiesファイル、頻繁な変更を必要とする静的構成からいくつかのパスを読み取るためには、logback-spring.xmlで構成する必要があります
<Property Resource = "Application.Properties" /> <Property name = "log.Root.Level" Value = "$ {log.Root.Level}" /> <プロパティ名= "log.path" value = "$ {log.path}" /> <プロパティ名= "log.modulename" value = "$ {log.module}" />>>>>>>>これにより、application.propertiesファイルをに配置できます
log.path =/home/logs/examplelog.root.level = infolog.module = example
logback-spring.xmlに読んでから呼び出します。
WebConfig構成
WebConfigの主な機能は、基本的な構成のためにWeb.xmlとSpring-MVC.xmlを置き換えることです。
1。Web.xmlについて
従来のスプリングプロジェクトはすべて、Web.xmlファイルを構成します。このファイルの機能は次のとおりです。WARパッケージをアプリケーションコンテナ(TOMCATなど)に配置して実行すると、コンテナはフィルター(フィルター)、サーブレット、エラーページ、ウェルカムファイルリスト、リスナー(リスナー)、コンテキストパラム(コンテキストパラメーター)、リソースREF(リソース構成)、およびWeb.xmlに従ってその他の構成になります。
ContextLoaderListenerを含むリスナーは、コンテナを起動するときにApplicationContextの構成情報を自動的に組み立てるためにここにロードされます。
<リスナー> <リスナークラス> org.springframework.web.context.contextloaderlistener </ristener-class> </ristener>
このApplicationContextはSpring IOC(BeanFactoryから継承された)の中核であり、すべてのSingleton Beansは現時点でインスタンス化されます。
また、SpringMVCの非常に重要なDispatcherServletもここにロードされており、DispatcherServletを構成するためにどのXMLファイルが決定されます。
<Servlet> <Servlet-Name> springMVC </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <init-name> contextconfiglocation </param-name> <param-value> classpath:sprung-mvc.xc.xml-varue> </param-varue> <load-on-startup> 1 </load-on-startup> <! - <async-supported> true </async-supported> - > </servlet>
2。Spring-MVC.xmlについて
Spring-MVC.XMLはSpringMVC構成ファイルです。ここでは、ViewResolver、MultiPartresolver、HTTPメッセージコンバーター、カスタムインターセプターなど、カスタマイズする必要がある豆を構成できます。
上記のすべては、主に理由と理由を知るために、スプリングブートとは何の関係もありません。興味がない場合は、無視できます。
スプリングブートの構成について話しましょう。 Springbootには、「コンベンションは構成よりも優れている」ということわざがあります。つまり、特にターゲットを絞った構成(特別な構成が必要な場合に構成)ではなく、合意された方法を使用しようとします。
Spring-Boot-Starter-Webの「Box Out of the Box」依存関係を導入した後、Spring-Boot-Starter-WebにはSpring-boot-autoconfigureが含まれています。
この依存関係を使用すると、 @enableautocongigurationアノテーションを使用できます。この注釈は、導入された依存関係に基づいて必要なスプリング構成を推測し、それを構成するのに役立ちます。 Spring-Boot-Starter-Webが導入されたため、この注釈はWeb関連の構成を構成します。
さらに、 @enableautocongurationアノテーションは@springbootapplicationアノテーションに含まれています。したがって、スタートアップクラスのexampleserverApplicationで@SpringBootApplicationをANTATEするだけで、Webを自動的に構成するように構成することができます。
もちろん、いくつかの特別な構成があるかもしれません。現時点では、WebConfigを作成してカスタマイズできます。
/*** 2017/12/8にWutaoyuによって作成されました。 */ @configurationPublic class webconfig extends webmvcconfigureradapter {@override public void configuremessageconverters(list <httpmessageconverter <? } public marshallinghttpmessageconverter marshallinghttpmessageconverter(){marshallinghttpmessageconverter marshallinghttpmessageconverter = new marshallinghttpmessageconverter();リスト<Mediatype> mediatypes = new ArrayList <Mediatype>(); mediatypes.add(mediatype.text_xml); mediatypes.add(mediatype.application_xml); XStreamMarshaller xstreammarshaller = new Xstreammarshaller(); marshallinghttpmessageconverter.setsupportedmediatypes(mediatypes); marshallinghttpmessageconverter.setmarshaller(xstreammarshaller); marshallinghttpmessageconverter.setunmarshaller(xstreammarshaller); marshallinghttpmessageconverterを返します。 } //構成ファイルupload @bean(name = {"multipartresolver"})public multipartresolver multipartresolver(){commonsmultipartresolver commonsmultipartresolver = new commonsmultipartresolver(); commonsmultipartresolver.setDefaultEncoding( "utf-8"); commonsmultipartresolver.setmaxuploadsize(10485760000L); commonsmultipartresolver.setmaxinmemorysize(40960); commonsmultipartresolverを返します。 } //例外処理@Bean public ExceptionHandler ExceptionResolver(){ExceptionHandler ExceptionHandler = new ExceptureHandler(); return ExceptionHandler; } // Interceptor @Override public void addInterceptors(interceptorRegistry registry){registry.addInterceptor(new loginterceptor())。 Super.AddDINTERCEPTORS(レジストリ); }}このサンプルファイルでいくつかのことをしました:
余分な豆注入を除去します
これは気晴らしですが、実際に遭遇した問題の1つでもあります。
実際にSpringbootプロジェクトを実行しているとき、私は従来の春のプロジェクトでエラーを報告しないいくつかの問題を見つけました。これは不必要な豆注入です。
従来の春のプロジェクトでは、エラーはありませんが、スプリングブートプロジェクトでは報告されています。 Beanに注入されたクラスメソッドが比較的単純な方法で与えられると、Springboot自体によって自動的に構成され、エラーが報告される豆の一部で繰り返されるためです。
したがって、注入する必要のない豆を取り除きます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。