SpringBootの基本的な一般的な注釈の説明
@Autowired
-
依存関係の挿入に使用されるオブジェクトは、セッターメソッド、構築メソッド、およびフィールドに使用できます。ある
package org.springframework.beans.factory.annotation;
コメント内は。タイプ(ByType)に従って依存オブジェクトをアセンブルします。デフォルトでは、注入されたオブジェクトが存在する必要があります。オブジェクトが存在しない場合、エラーが報告され、@Autowired(required=false)
注入されたオブジェクトを使用できます。 -
@Qualifier
注釈と組み合わせて使用されます。これは、現在注入されているBeanの名前が@Qualifier
後者のBeanであることを意味します。@Qualifier
後者のBeanは使用中に存在する必要があることに注意してください。存在しない場合、エラーが報告されます。
@Autowired注入オブジェクトの例
@Component
public class AnnoationClazz {
private UserService userService;
@Autowired
RedisProperties redis;
@Autowired(required = true)
public void setUserService(@Qualifier("userService") UserService userService) {
this.userService = userService;
}
}
静的オブジェクトを挿入する@Autowriedの例
@Component
public class AnnoationClazz {
private static RedisProperties redisProperties;
@Autowired(required = true)
public void setRedisProperties(RedisProperties redisProperties) {
AnnoationClazz.redisProperties=redisProperties;
}
}
@資源
- デフォルトの注入メソッドはByNameで、これは
java.lang.annotation.*
次のクラスです。 - Name属性とType属性があり、Spring
@Resource
は注釈付きの名前をBean名に解析し、TypeはBeanタイプです。name属性を使用する場合は、byNameの自動注入戦略を使用し、type属性を使用する場合は、byTypeの自動注入戦略を使用します。name属性もtype属性も指定されていない場合、byName自動注入戦略がリフレクションメカニズムを通じて使用されます。
インスタンス@Resource注入オブジェクト
@Resource
private UserService userervice;
@Resource
private void setUserService(UserService userService){
this.userService=userService;
}
@RequestParam
- @RequestParamは、requestHeaderからパラメーターを受け取ります。
- 要求されたUrlの上のパラメーターをメソッドのパラメーターにマップします。
- たとえば、要求されたUrlは
localhost:9999/request/test2?name=张三&age=1
インスタンス@RequestParamはリクエストパラメータを受け取ります
@RequestMapping("/test2")
public String getMap(@RequestParam String name,int age) {
System.out.println("方法请求到了!");
return name+String.valueOf(age);
}
@RequestBody
- @RequestBodyは、requestBodyおよびリクエスト本文からパラメーターを受け取ります。
- 通常
Content-Type: application/x-www-form-urlencoded
、次のような非データエンコーディング形式application/json
、application/xml
およびその他のタイプのデータを処理するため。
インスタンス受信パラメータ
@RequestMapping("/test1")
public List<String> getList(@RequestBody List<String> list){
System.out.println("方法请求到了!");
return list;
}
AthPathVariable
- Urlでデータを取得する
- 次のようなUrl:
localhost:9999/request/test3/12/张三
URLのデータを取得します
@RequestMapping("/test3/{age}/{name}")
public String str(@PathVariable("age") int age,@PathVariable("name") String name) {
return age+name;
}
@成分
- クラスがコンポーネントクラスであり、SpringがこのクラスのBeanを作成する必要があることを示します。
- @Component(@ Controller、@ Service、@ Respository)は、クラスパススキャンによって自動的にBeanコンテナにアセンブルされます。
@豆
- 構成クラスのメソッドであり、オブジェクトをSpringコンテナに返すことを示します。このオブジェクトは、SpringコンテキストでBeanとして登録する必要があります。
- Beanとマークされたメソッドは、通常、Beanオブジェクトを生成するロジックを記述します
@Component
public class TestComponent {
@Bean
public User getUser() {
User user =new User(1,"张三",new Date());
return user;
}
}
@PostConstruct
- これはJava独自の注釈です。
javax.annotation.PostConstruct
- Bean初期化全体での注釈の順序は次のとおりです。Constructor-> @ Autowired-> @ PostConstruct
インスタンス初期化静的オブジェクト
@Component
public class UserUtils {
private Logger logger=Logger.getLogger(UserUtils.class);
private static User users;
@Autowired
User user;
@PostConstruct
public void init() {
UserUtils.users=user;
}
public static Map<String,String> getUserMap(){
Map<String,String> map=new HashMap<String, String>();
map.put("age",String.valueOf(users.getAge()));
map.put("name",users.getName());
map.put("date", String.valueOf(users.getDate()));
return map;
}
}
@Qualifier
- 1つのタイプのBeanが複数ある場合は、@ Qualifier( "name")を使用して指定できます。@Autowiredアノテーションとともに使用します。
@PropertySource
- 読み取る構成ファイルのアドレスを指定し、@ Valueアノテーションとともに使用します。
@Component
@PropertySource(value = {
"redis.properties"})
public class RedisProperties {
@Value("${redis.url}")
private String url;
@Value("${redis.password}")
private String password;
@Value("${redis.username}")
private String username;
}