Spring Boot常用注釈
7237 ワード
@Spring Bootation: を見ることができる.
XxxControllerクラスでの使用は、
事務に用いる
恒久層
@component
コンポーネントを指します.規格に合わない場合、この注釈を使って表示してもいいです.
@Configration:クラスを構成クラスとして宣言し、その後Spring容器はそれによってIoC容器を生成してビーンを配置します.XxConfigrationクラスで使用します.@ProptySource:外部属性ファイルを指定します.@PropertySource@Value:属性注入@Bean:方法上、方法の戻り値をBean容器に加えると宣言しています.Springは自動的にこの方法を呼び出して、方法の戻り値をSpring容器に入れます.パラメータを持っていない場合は、関数名(例のdataSource)をBeanの名前として保存します.name属性を付与して、名前をアクティブに設定することもできます.Autowired:Spring容器から任意の位置で抽出し、属性に注入する
Springは@Bean以外にもIoC容器にビームを入れることができます.Component:どの種類がSpring IoC容器に走査されているかを明示します.@ComponentScan:どのような戦略を採用して走査組み立てBeanを表示しますか?普通は直接@Spring Bootationで代用します.
SpringBootの属性注入方式
@ConfigrationPropties(prefix=「jdbc」)Spring Bootの属性注入方式は、各種java基本データタイプと複雑なタイプの注入をサポートします.修飾を要求するクラスの中の名前は配置と一致しています.そしてset方法が必要です.@Valueを省くことができます.
@EnbleConfigrationPropties(Jdbc Propties.class)は、他のクラスに@ConfigrationProptiesが配置されているクラスを注入する場合、この注釈を追加する必要があります.
Web要求のマッピングを設定し、{}でその変数部分を表します.
@PostMapping
@PathVarable
@Request Param
@SpringBootConfiguration
:現在のクラスはSpringBootアプリケーションの構成クラスであり、プロジェクトの中には一つしかないと宣言しました.だから普通は自分で追加する必要がないです.@EnableAutoConfiguration
:springアプリケーションの自動構成をオンにして、Spring Bootはあなたの追加した依存とあなたの定義したbeanに基づいて、あなたの欲しい構成を推測して配置しようとします.例えばspring-boot-starter-web
を導入しましたが、このスターターにはtomcat、SpringMVCの依存が追加されています.この時自動配置でwebアプリを開発すると分かりますので、webとSpringMVCのデフォルト設定を完成しました.この自動構成は、spring-boot-at configreに依存して@ComponentScan
:注釈スキャンを開始し、これらの属性が指定されていない場合は、この注釈が宣言されているクラスの所在を示すパケットから開始し、スキャンパケットおよびサブパケットをスキャンする.@controller
、@service
、@repository
、@component
、@Configuration
によって注釈されたクラスは、これらのクラスをスプリング容器に組み込んで管理し、@Bean
を使用する必要がない.@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
@RertControllerXxxControllerクラスでの使用は、
@ResponseBody
+@Controller
聯がどのような状況で@ResonseBody注釈を使用するのに相当しますか?@RestController
public class HelloController {
@GetMapping("show")
public String test(){
return "hello Spring Boot!";
}
}
@service事務に用いる
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User queryById(Long id){
return this.userMapper.selectByPrimaryKey(id);
}
@Transactional
public void deleteById(Long id){
this.userMapper.deleteByPrimaryKey(id);
}
}
@repository恒久層
@component
コンポーネントを指します.規格に合わない場合、この注釈を使って表示してもいいです.
//
@Component
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle method is running!");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle method is running!");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("afterCompletion method is running!");
}
}
javaの設定@Configration:クラスを構成クラスとして宣言し、その後Spring容器はそれによってIoC容器を生成してビーンを配置します.XxConfigrationクラスで使用します.@ProptySource:外部属性ファイルを指定します.@PropertySource@Value:属性注入@Bean:方法上、方法の戻り値をBean容器に加えると宣言しています.Springは自動的にこの方法を呼び出して、方法の戻り値をSpring容器に入れます.パラメータを持っていない場合は、関数名(例のdataSource)をBeanの名前として保存します.name属性を付与して、名前をアクティブに設定することもできます.Autowired:Spring容器から任意の位置で抽出し、属性に注入する
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfiguration {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driverClassName);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
テスト@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@GetMapping("show")
public String test(){
return "hello Spring Boot!";
}
}
Spring他のビームを組み立てる方法Springは@Bean以外にもIoC容器にビームを入れることができます.Component:どの種類がSpring IoC容器に走査されているかを明示します.@ComponentScan:どのような戦略を採用して走査組み立てBeanを表示しますか?普通は直接@Spring Bootationで代用します.
SpringBootの属性注入方式
@ConfigrationPropties(prefix=「jdbc」)Spring Bootの属性注入方式は、各種java基本データタイプと複雑なタイプの注入をサポートします.修飾を要求するクラスの中の名前は配置と一致しています.そしてset方法が必要です.@Valueを省くことができます.
@EnbleConfigrationPropties(Jdbc Propties.class)は、他のクラスに@ConfigrationProptiesが配置されているクラスを注入する場合、この注釈を追加する必要があります.
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
// ...
// getters setters
}
注入する@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfiguration {
@Autowired
private JdbcProperties jdbcProperties;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(jdbcProperties.getUrl());
dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
dataSource.setUsername(jdbcProperties.getUsername());
dataSource.setPassword(jdbcProperties.getPassword());
return dataSource;
}
}
@Request MappingWeb要求のマッピングを設定し、{}でその変数部分を表します.
@RequestMapping(value = {
"",
"/page",
"page*",
"view/*,**/msg"
})
@GetMapping@GetMapping
は、結合注釈であり、@RequestMapping(method = RequestMethod.GET)
の略語である.@PostMapping
@PostMapping
は、結合注釈であり、@RequestMapping(method = RequestMethod.POST)
の略語である.@PathVarable
@RestController
@RequestMapping("test")
public class MyController {
@Autowired
private User user;
@GetMapping("{subPath}")
public String test(@PathVariable("subPath") String subPath) {
if (subPath.equals("all")) {
return user.toString();
} else if (subPath.equals("name")) {
return user.getUserName();
} else {
return null;
}
}
}
@RequestMapping("/user/{username}/blog/{blogId}")
@ResponseBody
public String getUerBlog(@PathVariable String username , @PathVariable int blogId) {
return "user: " + username + "blog->" + blogId;
}
この場合、Springは、名前に応じて自動的に付与される関数パラメータ値でもあり、@PathVarableに具体的なURL変数値を表示しても良い.デフォルトの場合、@PathVarableの注釈のパラメータは、基本的な簡単なタイプであってもよい.int、long、Date、Stringなど、Springは、URL変数の具体的な値および関数パラメータの種類に応じて自動的に変換することができ、例えば、/user/fpc/blog/1は、「fpc」の値をusernameに割り当て、1はint変数blog Idに割り当てられます.@Request Param
@RestController
@RequestMapping("/test")
public class Test {
@GetMapping("test.do")
// username name
public void test(@RequestParam(name = "username") String name) {
System.out.println(name);
}
@GetMapping("user.do")
// username user ,alias a
public void userAndAlias(@RequestParam(name = "username")String user, @RequestParam(name = "alias")String a) {
System.out.println(user);
System.out.println(a);
}
}
@Request Mappingと@Request Paramコメント