网站开发新手什么软件好,政务信息网站建设制度,佛山百度关键词seo外包,重庆建设工程造价管理SpringBoot是用于加速Spring开发的。 我们先来看看如何使用SpringBoot来创建一个基于Web的程序#xff0c;可以发现相较于SpringMVC其有巨大改变。
3.开发控制器类 GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(可以发现相较于SpringMVC其有巨大改变。
3.开发控制器类 GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(id:id);System.out.println(port);return hello springboot;}在这里介绍一下SpringBoot的强大功能这是一个集成了Tomcat容器的框架在实际开发过程中如果前端开发人员想要使用该项目的话则可以通过idea中带的package方法来创建一个可执行的jar包。 随后我们找到该文件夹所在的目录在目录地址输入cmd就可以直接切换到这个目录下了随后输入Java -jar **.jar就可以执行了。 但在执行过程中出现了问题 springboot-0.0.1-snapshot.jar中没有主清单属性 看到网上最多的原因是pom.xml文件中没有spring-boot-maven-plugin插件然而我们查看pom.xml文件发现是有配置插件spring-boot-maven-plugin的。 事实上这是由于该插件下进行了下面的配置才导致没有主类的。我们将其注释即可。
configurationmainClasscom.wms.SpringbootVueWmsApplication/mainClassskiptrue/skip
/configuration再次运行OK了 SpringBoot之所以能够这样快速启动就是依赖了下面的这个插件所实现的
buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins
/build此外为什么SpringBoot为何比Spring少了那么多配置呢事实上这都是由于SpringBoot为我们提供了大量的起步依赖。即含有starter的都是我们的起步依赖而我们的程序要运行依靠的便是引导类Application
配置文件
在SpringBoot中主要有三种配置文件格式分别是propertiesyml以及yaml其中我们日后最常用的便是yml格式的文件。
Value直接读取
我们在配置文件中写入了配置信息后这些配置信息该如何读取呢 和我们之前的配置信息读取方式相同使用Value注解即可。 Value(${server.port})private Integer port;GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(id:id);System.out.println(port);return hello springboot;}但这种方式如果有很多个配置信息的话我们岂不是要写很多个Value注解因此SpringBoot为我们提供了第二种配置文件读取方式通过”环境“加载。
Environment封装后读取 Autowiredprivate Environment environment;GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(id:id);System.out.println(environment.getProperty(server.port));return hello springboot;}实体类封装属性封装后读取
这种方式起到了一个遍历的作用即其读取了所有的配置信息但这依旧不是我们在开发中最常用的方式下面介绍第三种方式。
server:port: 80
users:name: pengage: 20likes:- books- bike定义映射类Users并使用Component声明为Bean并使用ConfigurationProperties来确定映射的数据
package com.example.springboot;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;
Component
ConfigurationProperties(prefix users)
public class Users {private String name;private Integer age;private String[] likes;Overridepublic String toString() {return Users{ name name \ , age age , likes Arrays.toString(likes) };}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;}public String[] getLikes() {return likes;}public void setLikes(String[] likes) {this.likes likes;}
}随后我们直接加载这个Bean就可以读取对应的配置信息了 Autowiredprivate Users users;GetMapping(/{id})public String getById(PathVariable Integer id){System.out.println(id:id);System.out.println(environment.getProperty(server.port));System.out.println(users.toString());return hello springboot;}多环境开发配置
什么叫多环境开发配置呢这是由于我们的环境不同其配置也不相同导致的那么我们该如何做呢难道每次都要修改配置文件 使用yml进行多环境配置使用—可以将配置分开使用spring.profiles.active设置要启用的环境只有公共的则放到最上面。
#设置启用的环境
spring:profiles:active: dev
---
#开发环境
server:port: 80
spring:profiles: dev
---
#生成环境
server:port: 82
spring:profiles: pro
---
#测试环境
server:port: 83
spring:profiles: test
users:name: pengage: 20likes:- books- bike此时我们访问连接时发现Users{namenull, agenull, likesnull}这是由于User的配置写在了测试环境中了而目前我们启用的是开发环境。 上述这种配置方式采用的是—区分环境在yml与yaml中都可以使用而properties则是采用多文件区分环境注意在SpringBoot开发中配置文件的名字必须是application 多环境配置命令行参数
前面说过我们可以将整个项目打包为jar包然后给测试人员进行测试那么我们在发给测试人员前需要切换配置吗事实上是不用的我们可以在运行jar时进行指定如下
java -jar SpringBoot-0.0.1-SNAPSHOT.jar --spring.profiles.activetest那么如果测试这个测试环境的端口已经被占用了呢难道我们要重新修改端口再打包吗不用的我们 只需要如法炮制即可我们可以在输入命令行时重新指定端口
java -jar SpringBoot-0.0.1-SNAPSHOT.jar --server.port88此外SpringBoot默认对配置 文件进行分级如果我们在application.yml中创建一个config文件夹并在里面重写一下application.yml那么就会对原本的application.yml文件进行覆盖。其中34级是为了开发服务的12级是为了测试服务的。 SpringBoot整合Junit
相较于Spring整合JunitSpringBoot的实现更加简单。我们做的只是自动装配了UserServicecontextLoads方法则是自动生成的我们只需要在其内调用us.getAll方法即可。当然这个方法并没有什么特殊性我们 可以随便改的。在这里不得不惊叹SpringBoot用起来也太方便了吧。
SpringBootTest
class ApplicationTests {Autowiredprivate UserService us;Testvoid contextLoads() {us.getAll();}
}事实上这里运行test其实是加载了上面这个类该类就相当于Spring中的配置文件。 即相当于下面的写法 SpringBoot整合Mybatis
整合Mybatis需要重新创建一下因为要引入Mybatis的依赖。 这里需要注意的是我们的MySQL是5.7的因此这个8是不能用的因此我们需要更换一下。 我们自己替换一下就可以了 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.25/version/dependency此外如果我们的配置文件发生了乱码则可以通过setting将其设置为UTF-8来解决。 随后我们对Mybatis进行整合就可以了。 首先我们需要设定数据库的配置信息
spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_takeoutusername: rootpassword: root随后通过注解开发实现对应的Dao与我们在Spring中的配置完全相同
package com.example.spingbootmybatis.dao;
import com.example.spingbootmybatis.domain.Menu;
import com.example.spingbootmybatis.domain.Users;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
Mapper
public interface UserDao {Select(select * from users)public ListUsers findAll();Select(select * from users)public ListUsers show();public void edit(Users user);Update(update users set moneymoney#{money} where id#{id})public void inmoney(Param(id) int id, Param(money) int money);Update(update users set moneymoney-#{money} where id#{id})public void outmoney(Param(id) int id, Param(money) int money);Select(select * from menus where gname like %${gname}%)ListMenu list(Param(gname) String gname);Select(select * from menus)ListMenu lists();
}至此SpringBoot整合Mybatis就已经完成了。 SpringBoot整合SSM
前面的工作已经都完成了那么接下来我们来使用SpringBoot整合SSM框架。
SpringBoot使用起来极为方便我们只需要将对应的前端页面放到static这个文件夹下随后配置好对应的Controller即可这里博主使用了先前的一个项目进行重构其前端框架为Layui。