Spring Boot入门1——简单例子&属性配置

Spring Boot

Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。

简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。


HelloWorld

首先在Eclipse上安装STS插件


安装完成之后新建Spring项目。选择Spring Starter Project


在pom文件中增加关于web的依赖。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
没有问题的话,我们就可以开始编写Controller了。

@RestController
public class HelloController {
	
	@RequestMapping(value="/hello", method=RequestMethod.GET)
	public String HelloController() {
		return "Hello World!";
	}

}
编写完成之后如何启动呢?

找到Application,选择Run AS Spring Boot App。就启动了项目。

只需要浏览器键入localhost:8080/hello就可以进行访问了。

非常的简单!!!使我们更加专注于业务逻辑的开发。


如果我们增加web依赖的时候,使用mvn dependency:tree来打印项目依赖树的话,如下图所示。


可以发现,增加了许多的依赖包,webmvc,aop,jackson,tomcat等等。可以说一般web应用开发所需要的包都增加了。所以我们事实上默认的是采用tomcat启动的web应用。


属性配置

在application.properties或application.yml中配置,是Spring boot的应用配置文件。

在application.yml文件中,可以进行应用属性的修改。

例如:

server:
  port: 8081
  context-path: /helloworld
修改了web应用启动的端口以及增加了启动项目名,也就是要访问localhost:8081/helloworld/hello才能访问到原本的Controller。

自定义属性配置

在applicaion.yml文件中,我们可以定义一些自己的属性。

例如:

myAtt1: 10
myAtt2: attribute2
我们只需要在想要获取属性的地方使用@Value注解就可以获取属性的值。

例如:

@Value("${myAtt1}")
private int myAtt1;


如果我们有很多自定义属性,获取的话写很多个@Value,那多麻烦。所以Spring Boot提供了一种将属性注入一个类中的方法。

例如我们存在属性name和password,他们都同属于一个User类中。那配置文件中如何编写呢?

user:
  username: name
  password: password
并且我们需要提供一个类去承载这些属性,也就是一个model。并且使用@ConfigurationProperties

@Component
@ConfigurationProperties(prefix="user")
public class User {
	
	private String username;
	private String password;
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}
最后增加上@Component注解,让其注册为bean,并且使用@Autowired注解就可以获取到我们的属性了。

@Autowired
private User user;


那么问题又来了,在开发当中,一般来说,测试和实际应用中的配置是不同的,在Spring中,我们只需要修改web.xml中的DispatcherServlet或ContentLoaderListener中加载的配置文件就可以做到测试和实际应用切换非常迅速。

但在Spring Boot中,现在暂时好像都是通过默认加载application.yml,如此依赖,测试和实际应用的切换不是很麻烦?需要经常修改很多属性配置?

我们可以通过这么一种方式去达到切换的目的:

首先新建两个yml文件。


在applicaion.yml文件中增加如下配置:

spring:
  profiles:
    active: dev
这样,就相当于import applicatin-dev中的属性。

当我们需要切换的时候,只需要稍微修改一下active中的值,就可以轻松达到切换的效果了。


数据库访问

这里使用Spring-data-jpa进行数据库访问。

pom文件增加如下依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>
application.yml文件配置属性:

spring: 
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: root
  jpa:
    hibernate: 
        ddl-auto: create
    show-sql: true
还需要一个model:User类

@Entity
public class User {

    @Id
    @GeneratedValue
    private int id;

    @Column(nullable = false)
    private String name;
    
	@Column(nullable = false)
    private Integer age;
	
	public User() {}

    public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
}
最后,我们只需要定义一个接口,继承JpaRepository就可以使用其中的save(),delete()等方法实现CRUD。
public interface UserRepository extends JpaRepository<User, Integer>{

}
当然,我们也可以定义自己的持久化方法。

public interface UserRepository extends JpaRepository<User, Integer> {
	User findByName(String name);
}
只需要简单的声明这么一个方法,就可以使用了。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值