前面学习了spring-boot应用的依赖管理,现在我们将开始第一个spring-boot应用的构建,这里以web应用为例。
创建一个maven项目,pom依赖配置如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.3.2.RELEASE</version> </dependency>创建一个main方法类:(注意:不要在默认包下创建,这样会导致spring-boot应用出现个别问题,切这样的代码不符合编码规范)
package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }这里要注意三个注解
@Configuration
, @EnableAutoConfiguration
和 @
ComponentScan:
@Configuration:配置类;
虽然SpringApplication.run()方法支持基于xml配置文件启动,但是官方建议使用Configuration注解来代替xml配置,当然,你可以将配置分散到不同的类中便于分散管理,然后使用@Import导入个别所需要的配置类;你也可以使用@ComponentScan,它会自动扫描根包下所有的@Configuration配置类。
如果需要导入一个xml配置文件,可以使用@ImportResource注解
@EnableAutoConfiguration
:自动化配置;
根据应用所引用的依赖进行自动化配置,例如引用了jpa,则会自动扫描并配置根包下的@Entity注解类
如果引入了个别不想进行配置的类,使用exclude属性进行排除。
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
@
ComponentScan:根包,将当前类所在包作为根包,扫描该包及其子包下的bean组件(@Component
, @Service
, @Repository
, @Controller
)
我们会发现:@Configuration
, @EnableAutoConfiguration
和 @ComponentScan三个注解经常组合使用,为了开发方便,官方提供了一个注解来代替这三个注解组合使用的情况:
@SpringBootApplication
我们已经创建了一个应用启动类,然后就可以创建控制器了:
package com.example.myproject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping
public class IndexController {
@RequestMapping
@ResponseBody
public String index() {
return "hello world";
}
}
至此,我们就构建了一个基于spring-boot的web应用,启动main方法类,在浏览器中输入http://localhost:8080,如果页面输出"hello world",则部署成功。
是不是很简单很方便?