Spring Boot是Spring框架的开发人员开发的子项目,以最小的配置创建独立的生产级应用程序。Spring Boot应用程序通常捆绑为fat / uber jar文件,并且可以作为简单的jar文件部署在任何平台上。这就是为什么Spring Boot应用程序是在Java中构建微服务的理想选择。
让我们从eclipse中的spring boot hello world示例开始逐步学习。
目录1.创建spring boot hello world项目模板2.将spring boot项目导入eclipse 3. Spring boot自动配置4. Spring boot注解5.如何通过spring boot验证自动配置的bean 6. Spring boot REST API示例7.演示
1.创建spring boot hello world项目模板
要为spring boot应用程序创建模板,我建议使用http://start.spring.io/。在这里,您可以选择当前考虑的所有依赖关系,并生成项目。
Spring Boot选项
我选择了Jersey,Spring Web,Spring HATEOAS,Spring JPA和Spring Security等依赖项。在下载并导入项目后或将来出现需求时,可以添加更多依赖项。
Generate Project按钮将生成一个.zip文件。下载文件并将其解压缩到您的工作区中。
2.导入spring boot项目到eclipse
下一步是将生成的项目导入到IDE中。我为此使用了eclipse。
1)将spring boot项目导入为现有的maven项目。
将现有的Maven项目导入Eclipse
2)选择pom.xml要导入的文件。
选择pom.xml文件导入Maven项目
3)将导入项目,并且在生成zip文件时添加的依赖项将自动下载并添加到classpath中。
导入的Spring Boot项目结构
您现在已经成功导入了spring boot应用程序。现在,让我们看看它已经为您配置了什么。
3. Spring Boot自动配置
使用spring boot时,好事是当您添加一个依赖项(例如Spring security)时,它会做出合理的假设并自动为您配置一些默认值。因此,您可以立即开始。
Spring Boot通过扫描类路径中可用的依赖库来使用约定而非配置。对于spring-boot-starter-*POM文件中的每个依赖关系,Spring Boot执行一个默认AutoConfiguration类。AutoConfiguration类使用*AutoConfiguration词法模式,其中*表示库。例如,spring安全性的自动配置是通过完成的SecurityAutoConfiguration。
同时,如果您不想对任何项目使用自动配置,则此操作非常简单。只需使用exclude = SecurityAutoConfiguration.class如下。
@SpringBootApplication (exclude = SecurityAutoConfiguration.class)
public class SpringBootDemoApplication {
public static void main(String[] args)
{
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
也可以使用application.properties文件src/main/resources夹中的文件覆盖默认配置值。
4. Spring Boot注解
现在看一下@SpringBootApplication注解的实际作用。
4.1。@SpringBootApplication注解
SpringBootApplication 定义如下:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class))
public @interface SpringBootApplication
{
//more code
}
它为应用程序配置目的添加了3个重要的注解。
@SpringBootConfiguration
@Configuration
public @interface SpringBootConfiguration
{
//more code
}
该注解@Configuration为类添加注解,该注解将类标记为应用程序上下文的Bean定义的源。
@EnableAutoConfiguration
这告诉Spring Boot pom.xml通过基于类路径设置,其他bean和各种属性设置添加bean来基于添加的依赖关系自动配置重要的bean定义。
@ComponentScan
该注解告诉Spring Boot扫描基本软件包,查找其他bean /组件并对其进行配置。
5.如何通过Spring Boot验证自动配置的Bean
如果您想知道在Spring Boot Hello World应用程序中已自动配置了所有bean ,请使用此代码并运行它。
SpringBootDemoApplication.java
import java.util.Arrays;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
import org.springframework.context.ApplicationContext;
@SpringBootApplication (exclude = SecurityAutoConfiguration.class)
public class SpringBootDemoApplication {
public static void main(String[] args)
{
ApplicationContext ctx = SpringApplication.run(SpringBootDemoApplication.class, args);
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames)
{
System.out.println(beanName);
}
}
}
对于我的pom.xml文件,它会生成以下bean名称以及许多其他springframework.boot.autoconfigure依赖项。
安慰
simpleControllerHandlerAdapter
sortResolver
spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
spring.hateoas-org.springframework.boot.autoconfigure.hateoas.HateoasProperties
spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties
spring.http.multipart-org.springframework.boot.autoconfigure.web.MultipartProperties
spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties
spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties
spring.jpa-org.springframework.boot.autoconfigure.orm.jpa.JpaProperties
spring.jta-org.springframework.boot.autoconfigure.transaction.jta.JtaProperties
spring.mvc-org.springframework.boot.autoconfigure.web.WebMvcProperties
spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties
springBootDemoApplication
standardJacksonObjectMapperBuilderCustomizer
stringHttpMessageConverter
tomcatEmbeddedServletContainerFactory
tomcatPoolDataSourceMetadataProvider
transactionAttributeSource
transactionInterceptor
transactionManager
transactionTemplate
viewControllerHandlerMapping
viewResolver
websocketContainerCustomizer
6. Spring Boot REST API示例
现在是时候将任何功能构建到hello world应用程序中了。您可以根据需要添加功能,我正在添加REST API。
6.1。创建REST控制器
创建一个包com.how2codex.demo.controller并在其中创建rest控制器。
EmployeeController.java
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.how2codex.demo.model.Employee;
@RestController
public class EmployeeController
{
@RequestMapping("/")
public List<Employee> getEmployees()
{
List employeesList = new ArrayList<Employee>();
employeesList.add(new Employee(1,"lokesh","gupta","howtodoinjava@gmail.com"));
return employeesList;
}
}
6.2。建立模型
创建模型类Employee。
Employee.java
public class Employee {
public Employee() {
}
public Employee(Integer id, String firstName, String lastName, String email) {
super();
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
private Integer id;
private String firstName;
private String lastName;
private String email;
//getters and setters
@Override
public String toString() {
return "Employee [id=" + id + ", firstName=" + firstName
+ ", lastName=" + lastName + ", email=" + email + "]";
}
}
7. Spring Boot Hello World示例演示
现在,通过运行中的main()方法启动应用程序SpringBootDemoApplication。它将在port上启动嵌入式tomcat服务器8080。
由于我们已将演示REST API URL配置为根URL,因此您可以http;//localhost:8080/自行访问它。
验证Spring Boot REST API
您将在测试工具或浏览器中收到以下响应。
[{“ id”:1,“ firstName”:“ lokesh”,“ lastName”:“ gupta”,“ email”:“ howtodoinjava@gmail.com”}]
这就是这个Spring Boot Rest Hello世界示例以及简单的Rest API示例的全部内容。
让我问您有关如何使用Maven在Eclipse中创建Spring Boot项目的问题。
感谢原博主的序列, 转载 -- http://how2codex.com/spring/spring-boot/3596.html