SpringBoot is What?

原创
2018/12/02 14:20
阅读数 86

  SpringBoot is What?
  
  How use it ?
  
  Quick to use 
  
  SpringBoot is What?
  
  Spring的目标是致力于全方位简化Java开发
  
  SpringBoot是简化Java开发
  
  我们来探讨一下一个标准的Spring程序我们需要该做什么
  
  标准项目结构,以及必要的依赖
  
  web.xml文件(或一个WebAPplicationInitializer实现)
  
  Spring的相关配置
  
  Controller控制器
  
  WEB应用服务器(Tomcat)
  
  我们可以发现只有一个Controller是和我们的业务相关的,其他的都是Spring开发Web应用程序的通用模板,而SpringBoot就能让你只写控制器即可,剩下的全都交给SpringBoot即可,下面我们一起来看一下SpringBoot是如何简化Spring开发的
  
  起步依赖 : 告诉SpringBoot需要什么功能,它就能引入相关依赖
  
  自动配置 : 针对Spring常见功能自动提供相关配置
  
  命令行界面 : 编写部分代码就可以运行程序
  
  Actuator : 能让你深入到运行中的SpringBoot一探究竟
  
  How use it ?
  
  构建SpringBoot项目,有很多种方法,例如下面所示,你可以使用任何一种方法构建SpringBoot项目
  
  WEB界面(https://start.spring.io/)
  
  Spring Tool Suite
  
  IntelliJ IDEA
  
  SpringBoot CLI
  
  下面是使用web界面构建SpringBoot项目示例图,另外几种方式不再一一累述
  
  1
  
  Quick to use
  
  现在我们要花上三分钟创建一个小的应用程序,是一个类似待办事项的小应用,从这个应用程序中,我们就能感受到SpringBoot的起步依赖和自动配置的强大魅力 本章源码
  
  image
  
  创建一个BOOK(实体类)
  
  创建一个Repository(仓库接口)
  
  创建一个Controller(控制器)
  
  Book实体
  
  @Entity
  
  public class Book {
  
  @Id
  
  @GeneratedValue(strategy=GenerationType.AUTO)
  
  private Long id;
  
  private String reader;
  
  private String isbn;
  
  private String title;
  
  private String author;
  
  private String www.mhylpt.com description;
  
  getter and setter .....
  
  }
  
  仓库接口
  
  @Repository
  
  public interface ReadingListRepository extends JpaRepository<Book, Long> {
  
  List<Book> findByReader(String reader);
  
  }
  
  控制器
  
  @Controller
  
  @RequestMapping("/readingList")
  
  public class ReadingListController {
  
  private static final String reader = "jimisun";
  
  @Autowired
  
  private ReadingListRepository readingListRepository;
  
  @RequestMapping(method www.yigouyule2.cn= RequestMethod.GET)
  
  public String readersBooks(Model model) {
  
  List<Book> readingList www.michenggw.com= readingListRepository.findByReader(reader);
  
  if (readingList != null) {
  
  model.addAttribute("books", readingList);
  
  }
  
  return "readingList";
  
  }
  
  @RequestMapping(method www.gcyl158.com = RequestMethod.POST)
  
  public String addToReadingList(Book book) {
  
  book.setReader(reader);
  
  readingListRepository.save(book);
  
  return "redirect:/readingList";
  
  }
  
  }
  
  前端html
  
  ......
  
  启动SpringBoot项目,访问 http://localhost:8080/readingList
  
  image
  
  刚才发生了什么?我们不是要进行配置一些类的配置吗?NO NO NO,使用SpringBoot让配置成为了过去,SpringBoot的自动配置(利用Spring的条件化配置)担任起了配置Spring的重任
  
  因为ClassPath里有H2,所以会创建一个H2数据库的Bean,JPA实现需要它访问数据库
  
  因为ClassPath里有Hibernate(Spring Data JPA传递引入的)实体管理器,所以自动配置会配置与Hibernate有关的Bean
  
  因为ClassPath里有Spring Data JPA,所以会根据仓库的接口创建仓库的实现
  
  因为ClassPath里有Spring MVC(Web的起步依赖引入的),所以会配置Spring的DispatcherServlet并启用Spring MVC
  
  因为ClassPath里有Tomcat(Web起步依赖引入的),所以会启动一个嵌入式的Tomcat容器,监听8080端口
  
  ......
  
  我们可以看到,得益于SpringBoot的起步依赖和自动配置,我们几乎不用做任何配置,但是在某些场景下自动配置可能并不如意,或者你需要另外一种配置,该怎么办?下一篇我们会一起来了解如何掌控SpringBoot的自动配置

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部