一、SpringBoot简介:
SpringBoot是由Pivotal团队提供的全新框架,设计目的是用来简化Spring应用的创建、运行、调试、部署等。
使用SpringBoot可以做到专注于Spring应用的开发,而无需过多关注XML配置。
SpringBoot使用COC(Convention Over Configuration)的理念,提供了针对企业应用开发各种场景的很多spring-boot-starter自动配置依赖模块,使得企业应用开发中各种场景的Spring应用更加快速和高效。
1、SpringBoot优点
使编码变得简单:推荐使用注解
使配置变得简单:自动配置、快速构建项目、快速集成新技术的能力。
使部署变得简单:内嵌Tomcat、Jetty等web容器。
使监控变得简单:自带项目监控。
2、SpringBoot2.0重要改变
基于Spring5构建
为各种组件的响应式编程提供了简化配置,如:Reactive Spring Data、Reactive Spring Security。
要求Java版本必须是Java 8或更高版本。
要求Gradle4或更高版本,Maven3.2或更高版本。
要求Tomcat8或更高版本,Hibernate5.2或更高版本,Thymeleaf或更高版本。
3、常用依赖模块
日志依赖模块spring-boot-starter-logging
Web开发依赖模块spring-boot-starter-web
4、HelloWorldApplication 主类(创建项目自动生成的)
点主类启动SpringBootApp就可以运行,不需tomcat
主类代码如下
package com.guo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
}
二、项目配置
package com.guo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller //新版本springboot,加了个RestController,下面的@ResponseBody 可以省略
public class HelloWorldController {
@ResponseBody //可以以ajax返回了
@RequestMapping("/helloWorld") //地址...8080/helloWorld 运行
public String say(){
return "Hello SpringBoot";
}
}
Application.properties是整个的配置文件,相当于web.xml
server.port=8888 //把接口8080 改成8888
server.context-path=/HelloWorld //不起作用,改成 server.servlet.context-path
server.servlet.context-path=/HelloWorld//输入 …8888/HelloWorld,出现下图说明成功
以后运行项目输入地址格式为http://localhost:8888/HelloWorld/加项目映射地址
然后在…8888/HelloWorld/@RequestMapping("/helloWorld")中的helloWorld可以返回say方法
输出 Hello SpringBoot
三、.以上是自动配置的,下面是自定义
在Application.properties继续添加下面代码
Hello1=spring boot u4F60u597D //key=value的形式,不支持汉字用编码代替
这个Hello1怎么用,需要在HelloWorldController.java 加
@Value("${Hello1}") private String Hello1;
这样就被注入进来了, 将return值改为Hello1。
然后输入网址…8888/HelloWorld/(@RequestMapping("/helloWorld")中的)helloWorld ,出现Hello1对应的value值就正确了
四、模拟数据库连接怎么被调用,配置文件Application.properties中加入
mysql.jdbcName=com.mysql.jdbc.Driver
mysql.dbUrl=jdbc:mysql://localhost:3306/db_boot
mysql.userName=root
mysql.password=123
然后在Controller中注入@Value(${ })中的属性是配置文件中自定义的key
@Value("${mysql.jdbcName}")
private String jdbcName;
@Value("${mysql.dbUrl}")
private String dbUrl;
@Value("${mysql.userName}")
private String userName;
@Value("${mysql.password}")
private String password;
Controller中新加一个请求方法 showjdbc
@ResponseBody
@RequestMapping("/showJdbc")
public String showJdbc(){
return "mysql.jdbcName:"+jdbcName+"<br/>"
+"mysql.dbUrl:"+dbUrl+"<br/>"
+"mysql.userName:"+userName+"<br/>"
+"mysql.password:"+password+"<br/>"
}
输入localhost:8888/HelloWorld/showJdbc
五、.链接数据库有四个属性,一个一个写注入@Value()...很麻烦
这时想到了用对象封装
新建package com.guo.properties;在包下新建个MysqlProperties.java
@Component //这配置这个类相当于Spring中的bean,所以谁引入要在前加个@Resource @ConfigurationProperties(prefix="mysql") // ConfigurationProperties配置,prefix的值是key的前缀
//(ConfigurationProperties会报个警告,点击添加,会自动在pom.xml添加如下jar包依赖 // <dependency> // <groupId>org.springframework.boot</groupId> // <artifactId>spring-boot-configuration-processor</artifactId> // <optional>true</optional> // </dependency> //) public class MysqlProperties { //前缀已经给配置了,所以代码写成如下这样就行了,然后在获取get set方法 private String jdbcName; private String dbUrl; private String userName; private String password; //get set 方法代码
六、.然后在Controller中把原先的代码
@Value("${mysql.jdbcName}")
private String jdbcName;
@Value("${mysql.dbUrl}")
private String dbUrl;
@Value("${mysql.userName}")
private String userName;
@Value("${mysql.password}")
private String password;
删除替换成
@Resource //相当于注入个bean private MysqlProperties mysqlProperties;
七、再然后showJdbc方法中的代码
return "mysql.jdbcName:"+jdbcName+"<br/>"
+"mysql.dbUrl:"+dbUrl+"<br/>"
+"mysql.userName:"+userName+"<br/>"
+"mysql.password:"+password+"<br/>";
改为
return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>"
+"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>"
+"mysql.userName:"+mysqlProperties.getUserName()+"<br/>"
+"mysql.password:"+mysqlProperties.getPassword()+"<br/>";
体现了面向对象的思想,这很方便,别的地方要用的话,写一个实体直接引用就行了。
然后在输 localhost:8888/HelloWorld/showJdbc 运行结果依然是一样的
八、出现如下错误
错误: 找不到或无法加载主类 com.guo.HelloWorldApplication
解决:
点击项目右键-->Properties-->Java Compiler-->Building-->Enable project specific settings-->Build path problems-->选中Abort Incomplete build path/Circular dependencies 这两选项修改为Warning,然后保存即可。
参考书目:《Spring Boot 2企业应用实战》 作者:疯狂软件 出版社:电子工业出版社