您的位置:首页 > 编程语言 > Java开发

Spring Boot入门

2016-11-22 00:00 267 查看
摘要: 使用Spring Boot快速搭建一个Rest风格的应用。

1 Hello World

1.1 创建Maven Project

1.2 添加Spring Boot相关配置

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

1.3 编写Controller

@RestController
@EnableAutoConfiguration
public class SampleController {

@RequestMapping("/sample")
public String hello(){
return "sample";
}

public static void main(String[] args) {
SpringApplication.run(SampleController.class, args);
}

}

启动main函数后,可以在控制台看到启动了一个Tomcat容器,通过浏览器访问 sample即可看到页面输出了SampleController中hello方法的返回值了。



至此一个简单的Rest风格应用已经搭建成功。

2 连接数据库

2.1 添加数据库相关配置

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

在resources文件夹下创建application.yml文件并添加以下数据库配置

spring:
datasource:
url: jdbc:mysql://localhost/test
username: root
password: ******
driver-class: com.mysql.jdbc.Driver

2.2 创建测试数据

在mysql中执行以下sql

use test;

create table user(
id int primary key not null,
username varchar(20),
create_date date,
last_accessed date,
is_active tinyint(1)
);

insert into user values(1,'zhangsan',now(),now(),1);

insert into user values(2,'lisi',now(),now(),1);

insert into user values(3,'wangwu',now(),now(),0);

2.3 创建User实体

@Entity
@Table(name="user")
public class User {
@Id
@GeneratedValue
private Long id;
private String username;
private Date createDate;
private Date lastAccessed;
boolean isActive;

//getter

//setter
}

2.4 创建UserRepository

@Repository
public interface UserRepository extends CrudRepository<User, Long>{

}

2.5 创建UserController

@EntityScan("com.rft.springboot.entity")
@EnableJpaRepositories("com.rft.springboot.repository")
@RestController
@EnableAutoConfiguration
@RequestMapping("/user")
public class UserController {

@Autowired
private UserRepository userRepository;

@RequestMapping("/{id}")
public User view(@PathVariable("id") Long id){
return userRepository.findOne(id);
}

@RequestMapping("/all")
@ResponseBody
Iterable<User> get(){
return userRepository.findAll();
}
public static void main(String[] args) {
SpringApplication.run(UserController.class, args);
}
}

运行main方法,在浏览器地址栏输入 http://localhost:8080/user/1
http://localhost:8080/user/all即可查询到数据库中的数据



4 Security

Spring Boot支持功能强大的Spring Security,并且提供了自动配置的功能,以快速简便地启用安全层。

4.1 添加Security相关配置

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

4.2 开启Basic认证

在application.yml中配置Basic认证

security:
basic:
enabled: true
user:
name: test
password: test

运行UserController中的main方法,再次访问 http://localhost:8080/user/1,页面会弹出Basic认证框



5 部署到Tomcat

5.1 添加相关配置

<packaging>war</packaging>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

其中scope为provided表示由环境提供

5.2 创建Application

@RestController
@SpringBootApplication
public class Application extends SpringBootServletInitializer{

@RequestMapping("/index")
public String index(){
return "index";
}

public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for(String beanName : beanNames){
System.out.println(beanName);
}
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}

运行main方法,控制台会打印出所有bean

5.3 打包

使用命令提示符在工程所在目录下运行

mvn package

5.4 部署

将打包好的war包拷贝到Tomcat下,启动Tomcat服务,通过浏览器访问http://localhost:8080/springboot/user/1,结果正常。



参考资料:

Spring Boot——开发新一代Spring Java应用

深入学习微框架:Spring Boot
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息