Java で最も一般的に使用されるアノテーションのいくつかを要約します。
この記事では、主に Spring Boot で使用される一般的なアノテーションの概要を紹介します。必要な方は、
@RestController および @RequestMapping アノテーションを参照してください。
4.0 の重要な新しい改善点は、@RestController アノテーションです。 @Controller アノテーションから継承します。バージョン 4.0 より前では、Spring MVC コンポーネントはすべて @Controller を使用して現在のクラスを controllerサーブレット として識別していました。この機能を使用すると、@Controller を使用せずに専用の @RestController を使用して REST サービスを開発できます。
RESTful Web サービスを実装すると、応答は常に応答本文を通じて送信されます。開発を簡素化するために、Spring 4.0 ではコントローラーの特殊なバージョンが提供されています。 @RestController 実装の定義を見てみましょう:@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Controller @ResponseBody public @interface RestController @Target(value=TYPE) @Retention(value=RUNTIME) @Documented @Controller @ResponseBody public @interface RestController
ルーティング 情報を提供します。これは、「/」パスからの HTTP リクエストをホーム メソッドにマッピングする必要があることを Spring に伝えます。 @RestController アノテーションは、結果を string としてレンダリングし、呼び出し元に直接返すように Spring に指示します。
注: @RestController および @RequestMapping アノテーションは Spring MVC アノテーションです (これらは Spring Boot の特定の部分ではありません)
@EnableAutoConfiguration アノテーション
2 番目のクラスレベルのアノテーションは @EnableAutoConfiguration です。このアノテーションは、追加された jar 依存関係に基づいて Spring をどのように構成するかを推測するように Spring Boot に指示します。 spring-boot-starter-web は Tomcat と Spring MVC を追加するため、自動構成では Web アプリケーションを開発していると想定され、それに応じて Spring がセットアップされます。スターター POM と自動構成: 自動構成を設計する目的は、「スターター POM」をより有効に活用することですが、2 つの概念は直接関係しません。スターター POM 以外の jar 依存関係を自由に選択でき、Spring Boot は引き続きアプリケーションを自動的に構成するために最善を尽くします。 @EnableAutoConfiguration または @SpringBootApplication アノテーションを @Configuration クラスに追加することで、自動構成を選択できます。<pre name="code" class="java">import org.springframework.boot.autoconfigure.*; import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.context.annotation.*; @Configuration @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { } <pre name="code" class="java">import org.springframework.boot.autoconfigure.*; import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.context.annotation.*; @Configuration @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { } @Configuration
XML ソースを使用して SpringApplication.run() を呼び出すこともできますが、一般的には @Configuration クラスをプライマリ ソースとして使用することをお勧めします。一般的に main メソッドを定義するクラスも、メイン @Configuration の適切な候補です。すべての @Configuration を 1 つのクラスに入れる必要はありません。 @Import アノテーションを使用して、他の構成クラスをインポートできます。あるいは、 @ComponentScan アノテーションを使用して、@Configuration クラスを含むすべての Spring コンポーネントを自動的に収集することもできます。
XML ベースの構成を使用する必要がある場合でも、@Configuration クラスから始めることをお勧めします。追加の @ImportResource アノテーションを使用して、XML設定ファイルをロードできます。
このクラスの @Configuration アノテーションは、XML で Bean を構成することと同等です。@Bean アノテーション メソッドを使用することは、XML で Bean を構成することと同等です@ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)}) @ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)}) @SpringBootApplication
package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Constraintアノテーション:
@Component @ConfigurationProperties(prefix="connection") public class ConnectionSettings { @NotNull private InetAddress remoteAddress; // ... getters and setters } @Component @ConfigurationProperties(prefix="connection") public class ConnectionSettings { @NotNull private InetAddress remoteAddress; // ... getters and setters } @Profiles Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。 [java] view plain copy print?在CODE上查看代码片派生到我的代码片 @Configuration @Profile("production") public class ProductionConfiguration { // ... } @Configuration @Profile("production") public class ProductionConfiguration { // ... }@ResponseBody
json
dataを非同期で取得し、@responsebodyを追加すると、jsonデータが直接返されます。
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法我会用上这个注解 @AutoWired byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构 当加上(required=false)时,就算找不到bean也不报错。 @RequestParam: 用在方法的参数前面。 @PathVariable: 路径变量。 参数与大括号里的名字一样要相同。 以上注解的示范 全局处理异常的: @ControllerAdvice: 包含@Component。可以被扫描到。 统一处理异常。 @ExceptionHandler(Exception.class): 用在方法上面表示遇到这个异常就执行以下方法。 通过@value注解来读取application.properties里面的配置
造函数进行标注,完成自动装配的工作。@RequestParam String a =request.getParameter("a")。
@RequestParam String a =request.getParameter("a")。
RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}
RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}
/**
* 用户进行评论及对评论进行管理的 Controller 类;
*/
@Controller
@RequestMapping("/msgCenter")
public class MyCommentController extends BaseController {
@Autowired
CommentService commentService;
@Autowired
OperatorService operatorService;
/**
* 添加活动评论;
*
* @param applyId 活动 ID;
* @param content 评论内容;
* @return
*/
@ResponseBody
@RequestMapping("/addComment")
public Map<String, Object> addComment(@RequestParam("applyId") Integer applyId, @RequestParam("content") String content) {
....
return result;
}
}
/**
* 用户进行评论及对评论进行管理的 Controller 类;
*/
@Controller
@RequestMapping("/msgCenter")
public class MyCommentController extends BaseController {
@Autowired
CommentService commentService;
@Autowired
OperatorService operatorService;
/**
* 添加活动评论;
*
* @param applyId 活动 ID;
* @param content 评论内容;
* @return
*/
@ResponseBody
@RequestMapping("/addComment")
public Map<String, Object> addComment(@RequestParam("applyId") Integer applyId, @RequestParam("content") String content) {
....
return result;
}
}
@RequestMapping("/list/{applyId}")
public String list(@PathVariable Long applyId, HttpServletRequest request, ModelMap modelMap) {
}
@RequestMapping("/list/{applyId}")
public String list(@PathVariable Long applyId, HttpServletRequest request, ModelMap modelMap) {
}
/**
* 全局异常处理
*/
@ControllerAdvice
class GlobalDefaultExceptionHandler {
public static final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler({TypeMismatchException.class,NumberFormatException.class})
public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("error","参数类型错误");
mav.addObject("exception", e);
mav.addObject("url", RequestUtils.getCompleteRequestUrl(req));
mav.addObject("timestamp", new Date());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}}
/**
* 全局异常处理
*/
@ControllerAdvice
class GlobalDefaultExceptionHandler {
public static final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler({TypeMismatchException.class,NumberFormatException.class})
public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("error","参数类型错误");
mav.addObject("exception", e);
mav.addObject("url", RequestUtils.getCompleteRequestUrl(req));
mav.addObject("timestamp", new Date());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}}
# face++ key
face_api_key = R9Z3Vxc7ZcxfewgVrjOyrvu1d-qR****
face_api_secret =D9WUQGCYLvOCIdsbX35uTH********
# face++ key
face_api_key = R9Z3Vxc7ZcxfewgVrjOyrvu1d-qR****
face_api_secret =D9WUQGCYLvOCIdsbX35uTH********
@Value("${face_api_key}")
private String API_KEY;
@Value("${face_api_secret}")
private String API_SECRET;
@Value("${face_api_key}")
private String API_KEY;
@Value("${face_api_secret}")
private String API_SECRET;所以一般常用的配置都是配置在application.properties文件的
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. Java免费视频教程
3. JAVA教程手册
以上がJava で最も一般的に使用されるアノテーションのいくつかを要約します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック










![Windows ISO ファイルが大きすぎる BootCamp エラー [修正済み]](https://img.php.cn/upload/article/000/887/227/170831702395455.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Mac コンピュータで BootCampAssistant を使用しているときに「Windows ISO ファイルが大きすぎます」というエラー メッセージが表示される場合は、ISO ファイルのサイズが BootCampAssistant でサポートされている制限を超えていることが原因である可能性があります。この問題の解決策は、他のツールを使用して ISO ファイルのサイズを圧縮し、BootCamp アシスタントで処理できるようにすることです。 BootCampAssistant は、Mac コンピュータに Windows オペレーティング システムをインストールして実行するために Apple が提供する便利なツールです。ユーザーがデュアルブート システムをセットアップするのに役立ち、起動時に MacOS と Wind のどちらを使用するかを簡単に選択できるようになります。

2023年、AI技術が注目を集め、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。 GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直観的にし、不必要な複雑さを回避することを目的とした「SpringAI」が登場しました。 「SpringAI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

Spring プログラムによるトランザクションを実装する方法: 1. TransactionTemplate を使用する; 2. TransactionCallback および TransactionCallbackWithoutResult を使用する; 3. Transactional アノテーションを使用する; 4. TransactionTemplate を @Transactional と組み合わせて使用する; 5. トランザクション マネージャーをカスタマイズする。

JUnit フレームワークのアノテーションは、テスト メソッドの宣言と構成に使用されます。主なアノテーションには、@Test (テスト メソッドの宣言)、@Before (テスト メソッドの実行前に実行されるメソッド)、@After (テスト メソッドの後に実行されるメソッド) があります。が実行される)、@ BeforeClass (すべてのテスト メソッドが実行される前に実行されるメソッド)、@AfterClass (すべてのテスト メソッドが実行された後に実行されるメソッド)、これらのアノテーションは、テスト コードを整理して簡素化し、テスト コードの信頼性を向上させるのに役立ちます。明確な意図と構成を提供することで、読みやすさと保守性を向上させます。

はじめに: PHPDoc は、理解しやすく有益なドキュメントを作成する PHP コードのコメント標準です。 PHPDoc では、特定のコメント タグを使用することで、開発者が関数、クラス、メソッド、その他のコード要素に関する重要な詳細を提供できるようになります。この高度なガイドでは、PHPDoc を詳しく説明し、その機能を実証し、効果的な文書化戦略を提供します。構文とタグ: PHPDoc コメントは二重スラッシュ (//) または複数行コメント (/**/) で始まります。一般的なアノテーション タグをいくつか示します。 @param: 関数またはメソッドのパラメータを定義します。 @return: 関数またはメソッドの戻り値を指定します。 @throws: 関数またはメソッドによってスローされる可能性のある例外について説明します。 @var: クラスの属性またはインスタンスを定義します

Spring でトランザクション分離レベルを設定する方法: 1. @Transactional アノテーションを使用します; 2. Spring 構成ファイルに設定します; 3. PlatformTransactionManager を使用します; 4. Java 構成クラスに設定します。詳細な導入方法: 1. @Transactional アノテーションを使用し、トランザクション管理が必要なクラスまたはメソッドに @Transactional アノテーションを追加し、属性に分離レベルを設定します。 2. Spring の設定ファイルなどで

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック
