暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SpringBoot 配置和使用

java小小小小栈 2021-03-01
508



        SpringBoot 并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。

        SpringBoot 就是一个工具集。


        IDEA 创建  SpringBoot项目。



        修改。


            Demo 工程目录。




// HelloController.java


@RestController
@RequestMapping("/test")
public class HelloController {
@RequestMapping("/hello")
public String hello () {
return "hello, springboot.";
}
}


复制



        启动的三种方式。


        打包,然后使用命令的方式。



java -jar /Users/xx/Desktop/demo1-1.0.0.jar


// 测试。浏览器输入,http://localhost:8080/test/hello。


复制



        SpringBoot 注解。

        @Configuration 相当于 beans 标签。把一个普通类变成一个配置类。

        @Bean 相当于 bean 标签。把方法返回对象放到 IOC 容器中。

        @SpringBootApplication 是一个组合注解。@SpringBootConfiguration 就是 @Configuration 注解,代表启动类就是一个配置类。@EnableAutoConfiguration 帮助实现自动装配。



// pom.xml


<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>


复制


// User.java


@Data
@AllArgsConstructor
@NoArgsConstructor


public class User {


private Integer id;
private String name;


}


复制




// UserConfig.java


@Configuration
public class UserConfig {


@Bean
public User getUser() {
return new User(109091, "zs");
}


}


复制




@RestController
@RequestMapping("/test")
public class HelloController {


@Autowired
private User user;

@RequestMapping("/showUser")
public User showUser() {
return user;
}
}


// 测试。浏览器输入,http://localhost:8080/test/showUser。
复制




        环境配置和多环境配置。

        删除 application.properties 文件。创建application.yml、application-dev.yml、application-test.yml。



// 单环境
// application.yml


server:
port: 8089
servlet:
context-path: /boot


// 测试。浏览器输入,http://localhost:8089/boot/test/showUser。
复制


// 多环境切换
// application.yml

# 设置使用哪一个环境 ,只需要写环境的名称
spring:
profiles:
active: dev


// application-dev.yml
server:
port: 8088
servlet:
context-path: /dev


// application-test.yml
server:
port: 8089
servlet:
context-path: /test


// 测试。浏览器输入,http://localhost:8088/dev/test/showUser。


复制




        打包,然后使用命令的方式切换。



// 注掉 application.yml 的主配置。
#spring:
# profiles:
# active: dev


// 命令
java -jar /Users/xx/Desktop/demo1-1.0.0.jar --spring.profiles.active=test


// 测试。浏览器输入,http://localhost:8089/test/test/showUser。


复制



        @Value 注解。



// application.yml


a: texta


b:
c: textb


复制


@RestController
@RequestMapping("/test")
public class HelloController {


@Autowired
private User user;


@Value("${a}")
private String a;


@Value("${b.c}")
private String b;


@RequestMapping("/hello")
public String hello () {
return "hello, springboot.";
}


@RequestMapping("/showUser")
public User showUser() {
return user;
}


@RequestMapping("/showValue")
public String showValue() {
// return a;
return b;
}
}


复制




        如果在 yml 文件中需要编写大量的自定义配置,并且具有统一的前缀。



// application.yml


ali:
aa: 1
bb: 2
cc: 3
dd: 4


复制


// AliyunProperties.java


@Data
@Component
@ConfigurationProperties(prefix = "ali")
public class AliyunProperties {
private String aa;
private String bb;
private String cc;
private String dd;
}


复制




@RestController
@RequestMapping("/test")
public class HelloController {


@Autowired
private User user;


@Value("${a}")
private String a;


@Value("${b.c}")
private String b;


@Autowired
private AliyunProperties aliyunProperties;


@RequestMapping("/hello")
public String hello () {
return "hello, springboot.";
}


@RequestMapping("/showUser")
public User showUser() {
return user;
}


@RequestMapping("/showValue")
public String showValue() {
// return a;
return b;
}


@RequestMapping("/pro")
public AliyunProperties getAliyunProperties() {
return aliyunProperties;
}


}


复制


        热加载。



// pom.xml


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


<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>


复制



        SpringBoot 整合 Mybatis。


        xml 方式。



// pom.xml


<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>


<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>


<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>




复制


// Air.java


@Data
public class Air implements Serializable {


private Integer id;


private Integer districtId;


private Date monitorTime;


private Integer pm10;


private Integer pm25;


private String monitoringStation;


private Date lastModifyTime;


}


复制




// District.java


@Data
public class District implements Serializable {


private Integer id;


private String name;


}


复制




// AirMapper.java


public interface AirMapper {


List<Air> queryAll();


}


复制




// AirMapper.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.example.demo1.mapper.AirMapper">
<select id="queryAll" resultType="Air">
select * from air
</select>
</mapper>


复制




// application.yml


spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///dbTest1?serverTimezone=UTC
username: root
password: 12345678
type: com.alibaba.druid.pool.DruidDataSource


logging:
level:
com.example.demo1.mapper: debug


mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.demo1.entity
configuration:
map-underscore-to-camel-case: true


复制




// Demo1Application.java


@SpringBootApplication
@MapperScan("com.example.demo1.mapper")
public class Demo1Application {


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


}


复制




// AirMapperTest.java


@SpringBootTest
@RunWith(SpringRunner.class)
public class AirMapperTest {


@Autowired
private AirMapper airMapper;


@Test
public void queryAll() {


List<Air> airs = airMapper.queryAll();
for (Air air: airs) {
System.out.println(air);
}


}
}


复制




        消除 @Autowired 误报警告的方法。


        注解方式。



// DistrictMapper.java


public interface DistrictMapper {


@Select("select * from district")
List<District> queryAll();


@Select("select * from district where id = #{id}")
District queryById(Integer id);


}


复制


// DistrictMapperTest.java


@SpringBootTest
@RunWith(SpringRunner.class)
public class DistrictMapperTest {


@Autowired
private DistrictMapper districtMapper;


@Test
public void queryAll() {
List<District> list = districtMapper.queryAll();
for (District district : list) {
System.out.println(district);
}
}


@Test
public void queryById() {


System.out.println(districtMapper.queryById(1));


}
}


复制




        SpringBoot 整合分页。



// pom.xml


<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>


复制




// AirMapperTest.java


@SpringBootTest
@RunWith(SpringRunner.class)
public class AirMapperTest {


@Autowired
private AirMapper airMapper;


@Test
public void page() {


PageHelper.startPage(1,2);
List<Air> airs = airMapper.queryAll();
PageInfo<Air> pageInfo = new PageInfo<>(airs);
List<Air> pageInfoList = pageInfo.getList();
for (Air air: pageInfoList) {
System.out.println(air);
}


}
}


复制




        SpringBoot 整合 JSP。

        创建 JSP 页面。



// pom.xml


<!--jsp引擎的依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--jstl依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>


复制




// application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///dbTest1?serverTimezone=UTC
username: root
password: Liu01234
type: com.alibaba.druid.pool.DruidDataSource


mvc:
view:
prefix: /
suffix: .jsp


复制




// JspController.java


@Controller
public class JspController {


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


}


// 测试。http://localhost:8080/show


复制


文章转载自java小小小小栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论