spring boot简单教程(2)-@SpringBootApplication详解

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】

pom.xml
[html]
view plain
copy

  1. org.springframework.boot
  2. spring-boot-starter-parent
  3. 1.5.2.RELEASE
  4. org.springframework.boot
  5. spring-boot-starter-web

Run.java
[java]
view plain
copy

  1. package hello;
  2. import org.springframework.boot.*;
  3. import org.springframework.boot.autoconfigure.*;
  4. @SpringBootApplication
  5. publicclass Run{
  6. publicstaticvoid main(String[] args) throws Exception {
  7. SpringApplication.run(Run.class, args);
  8. }
  9. }

这个Run是一个单独的项目启动类,这里不应该有业务功能,上一篇的hello world业务代码应该写在一个单独的@Controller里面,和上一篇相比,这里用@SpringBootApplication替换了@EnableAutoConfiguration。

@SpringBootApplication
@EnableAutoConfiguration:只是实现自动配置一个功能,具体参考上一篇
@SpringBootApplication:是一个组合注解,包括@EnableAutoConfiguration及其他多个注解,是一个项目的启动注解
在eclipse的代码中 按 crtl+左键 点击@SpringBootApplication注解可以查看他的源码,如下

[html]
view plain
copy

  1. @Target(ElementType.TYPE)
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Documented
  4. @Inherited
  5. @SpringBootConfiguration
  6. @EnableAutoConfiguration
  7. @ComponentScan(excludeFilters = {
  8. @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
  9. @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
  10. public @interface SpringBootApplication

前四个注解:是元注解,用来修饰当前注解,就像public类的修饰词,没有实际功能,如果不打算写自定义注解,不需要了解
后三个注解:是真正起作用的注解,包括
@SpringBootConfiguration:当前类是一个配置类,就像xml配置文件,而现在是用java配置文件,效果是一样的
@EnableAutoConfiguration:上篇已经讲了
@ComponentScan:用注解配置实现自动扫描,默认会扫描当前包和所有子包,和xml配置自动扫描效果一样,@Filter是排除了两个系统类

@SpringBootConfiguration和@Bean

[java]
view plain
copy

  1. package hello;
  2. import org.springframework.boot.SpringBootConfiguration;
  3. import org.springframework.context.annotation.Bean;
  4. @SpringBootConfiguration
  5. publicclass Config {
  6. @Bean
  7. public String hello(){
  8. return“Hello World”;
  9. }
  10. }

@SpringBootConfiguration:说明这是一个配置文件类,它会被@ComponentScan扫描到

@Bean:就是在spring容器中声明了一个bean,赋值为hello world,String方法类型就是bean的类型,hello方法名是bean的id

如果是用xml配置文件来声明bean,如下图

[html]
view plain
copy

SampleController.java

[java]
view plain
copy

  1. package hello;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.*;
  4. import org.springframework.web.bind.annotation.*;
  5. @Controller
  6. publicclass SampleController {
  7. @Autowired
  8. String hello;
  9. @RequestMapping(value=“/”)
  10. @ResponseBody
  11. String test(){
  12. return hello;
  13. }
  14. }

把hello world业务功能独立出来,在这里注入了spring容器中的那个String类型的Bean,并且打印到页面

运行项目

现在的项目结构如下,共三个文件

2019101710057\_1.png

通过Run.java的main方法启动项目,访问http://localhost:8080/

2019101710057\_2.png


来源:[]()

赞(0) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » spring boot简单教程(2)-@SpringBootApplication详解

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏