@SpringBootApplication:包含了@ComponentScan、@Configuration和
@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。
@Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。
@EnableAutoConfiguration 自动配置。
@ComponentScan 组件扫描,可自动发现和装配一些Bean。
@Component可配合CommandLineRunner使用,在程序启动后执行一些基础任务。
@RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
@Autowired自动导入。
@PathVariable获取参数。
@JsonBackReference解决嵌套外链问题。
@RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。
Spring SpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。 当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。 SpringMVC Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。重要的是三大组件。 SpringBoot Spring 和 SpringMVC 的问题在于需要配置大量的参数。如: Spring Boot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,Spring Boot提供了一些非功能性特征
启动器是一套方便的依赖没描述符,它可以放在自己的程序中。你可以一站式的获取你所需要的 Spring 和相关技 术,而不需要依赖描述符的通过示例代码搜索和复制黏贴的负载。 例如,如果你想使用 Sping 和 JPA 访问数据库,只需要你的项目包含 spring-boot-starter-data-jpa 依赖项,你就可以完美进行。
让我们来思考一个 Stater 的例子 -Spring Boot Stater Web。 如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序。Spring Boot Start Web 是首选。让我们使用 Spring Initializr 创建一个 Spring Boot Start Web 的快速项目。 Spring Boot Start Web 的依赖项 下面的截图是添加进我们应用程序的不同的依赖项 依赖项可以被分为 Spring - core,beans,context,aop Web MVC - (Spring MVC) Jackson - for JSON Binding Validation - Hibernate,Validation API Enbedded Servlet Container - Tomcat Logging - logback,slf4j 任何经典的 Web 应用程序都会使用所有这些依赖项。Spring Boot Starter Web 预先打包了这些依赖项。 org.springframework.boot spring-boot-starter-web 作为一个开发者,我不需要再担心这些依赖项和它们的兼容版本
Options? Spring Boot 也提供了其它的启动器一共是44个,但是这不是固定的springboot可以很灵活的构建和整合第三方技 术,包括用于开发特定类型应用程序的典型依赖项。 spring-boot-starter-web-services - SOAP Web Services spring-boot-starter-web - Web 和 RESTful 应用程序 spring-boot-starter-test - 单元测试和集成测试 spring-boot-starter-jdbc - 传统的 JDBC spring-boot-starter-hateoas - 为服务添加 HATEOAS 功能 spring-boot-starter-security - 使用 SpringSecurity 进行身份验证和授权 spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA spring-boot-starter-data-rest - 使用 Spring Data REST 公布简单的 REST 服务 其他的启动器见资料中。
Spring Boot 致力于快速产品就绪应用程序。为此,它提供了一些譬如高速缓存,日志记录,监控和嵌入式服务器 等开箱即用的非功能性特征。 spring-boot-starter-actuator - 使用一些如监控和跟踪应用的高级功能 spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 选择您的特定嵌入式 Servlet 容器 spring-boot-starter-logging - 使用 logback 进行日志记录 spring-boot-starter-cache - 启用 Spring Framework 的缓存支持
Spring Boot 2.0 需要 Java8 或者更新的版本。Java6 和 Java7 已经不再支持 推荐阅读: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes
Spring Initializr是启动 Spring Boot Projects 的一个很好的工具。地址:https://start.spring.io/ 就像上图中所展示的一样,我们需要做一下几步: 登录 Spring Initializr,按照以下方式进行选择: 选择 com.in28minutes.springboot 为组 选择 studet-services 为组件 选择下面的依赖项 Web Actuator DevTools 点击生 GenerateProject 将项目导入 Eclipse。文件 - 导入 - 现有的 Maven 项目 或者是可以通过一些工具如Idea去构建一个springboot的骨架也可以
使用 Spring Boot 开发工具。 把 Spring Boot 开发工具添加进入你的项目是简单的。 把下面的依赖项添加至你的 Spring Boot Project pom.xml 中 重启应用程序,然后就可以了。同样的,如果你想自动装载页面,有可以看看 FiveReloadhttp://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-live-reload/.
在源文件夹下,创建一个名为 static 的文件夹。然后,你可以把你的静态的内容放在这里面。 例如,myapp.js 的路径是 resources\static\js\myapp.js 你可以参考它在 jsp 中的使用方法 错误:HAL browser gives me unauthorized error - Full authenticaition is required to access this resource.该如何来修复这个错误呢? 关闭安全验证 application.properties
会发生什么? { “timestamp”: 1488656019562, “status”: 401, “error”: “Unauthorized”, “message”: “Full authentication is required to access this resource.”, “path”: “/beans” } management.security.enabled=FALSE 如果你使用 Eclipse IDE,Eclipse maven 插件确保依赖项或者类文件的改变一经添加,就会被编译并在目标文件中 准备好!在这之后,就和其它的 Java 应用程序一样了。 当你启动 java 应用程序的时候,spring boot 自动配置文件就会魔法般的启用了。 当 Spring Boot 应用程序检测到你正在开发一个 web 应用程序的时候,它就会启动 tomcat。
tomcat? 在 spring-boot-starter-web 移除现有的依赖项,并把下面这些添加进去。
推荐阅读: https://spring.io/guides/gs/convert-jar-to-war/ 下面有 spring 说明文档直接的链接地址: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging
你需要做下面两个步骤: 在一个项目中生成一个 war 文件。 将它部署到你最喜欢的服务器(websphere 或者 Weblogic 或者 Tomcat and so on)。 第一步:这本入门指南应该有所帮助: https://spring.io/guides/gs/convert-jar-to-war/ 第二步:取决于你的服务器
RequestMapping 具有类属性的,可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法。 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty GetMapping 是 GET 请求方法中的一个特例。它只是 ResquestMapping 的一个延伸,目的是为了提高清晰 度。
这里是完整的指南: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现 当我们使用 JPA 的时候,我们使用 javax.persistence 包中的注释和接口时,不需要使用 hibernate 的导入包。 我们建议使用 JPA 注释,因为哦我们没有将其绑定到 Hibernate 作为实现。后来(我知道 - 小于百分之一的几 率),我们可以使用另一种 JPA 实现
因为 Spring Boot 是自动配置的。 下面是我们添加的依赖项 spring-boot-stater-data-jpa 对于 Hibernate 和 JPA 有过渡依赖性。当 Spring Boot 在类路径中检测到 Hibernate 中,将会自动配置它为默认的 JPA 实现
默认的数据库名字是 testdb? 在 application.properties 里面,列出了所有的默认值 https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 找到下面的属性 如果你使用了 H2 内部存储数据库,它里面确定了 Spring Boot 用来安装你的 H2 数据库的名字。
@Value 的问题在于,您可以通过应用程序分配你配置值。更好的操作是采取集中的方法。 你可以使用 @ConfigurationProperties 定义一个配置组件。
你可以在 application.properties 中配置参数。
企业应用程序的开发是复杂的,你需要混合的环境: -Dev -Test -Production 在每个环境中,你想要不同的应用程序配置。 配置文件有助于在不同的环境中进行不同的应用程序配置。 Spring 和 Spring Boot 提供了你可以制定的功能。 不同配置文件中,不同环境的配置是什么? 为一个制定的环境设置活动的配置文件。 Spring Boot 将会根据特定环境中设置的活动配置文件来选择应用程序的配置。
配置文件不是设别环境的关键。 在下面的例子中,我们将会用到两个配置文件 -dev -prod 缺省的应用程序配置在 application.properties 中。让我们来看下面的例子: application.properties 我们想要为 dev 文件自定义 application.properties 属性。我们需要创建一个名为 application-dev.properties 的文件,并且重写我们想要自定义的属性。 application-dev.properties 一旦你特定配置了配置文件,你需要在环境中设定一个活动的配置文件。 有多种方法可以做到这一点: -在 VM 参数中使用 Dspring.profiles.active=prod -在 application.properties 中使用 spring.profiles.active=prod