1.springboot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用。
2.通过maven的形式创建springboot工程
(1).pom文件中继承springboot的父工程
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.5.1</version>
</parent>
(2). 引入web启动依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
(3)创建一个主启动类
@SpringBootApplication
public class ZxjController {
public static void main(String[] args) {
SpringApplication.run(ZxjController.class,args);
}
}
3.springboot工程中常见的配置文件类型
(1).properties属性文件类型
server.port=8081
server.tomcat.connection-timeout=2000
(2).yml文件
server:
port: 8082
tomcat:
connection-timeout: 2000
4.java如何读取springboot配置文件中的内容
(1)
通过
@ConfifigurationProperties(prefifix = "student")
@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
private String name;
private Integer age;
private String sex;
private String adress;
private Date birthday;
private List<String> hobbys;
private Map<String,String> map;
private Set<String> sets;
private Clazz c;
}
properties
配置文件的内容
student.name=zs
student.age=17
student.sex=man
student.adress=beijing
student.birthday=2020/01/01
student.hobbys=chang,tiao,rap
student.map.k1=mangzai
student.map.k3=yasuo
student.map.k4=qinnv
student.sets=nuoshou,eyu,gouxiong,eyu
student.c.cid=1
student.c.cname=qy132
yml
文件的配置内容
student:
name:zhangsan
age:18
sex:man
adress:shanghai
birthday:2020/01/01
hobbys:
- pashan
- youyong
map:
k1:zs
k2:lm
k3:gdc
k4:csq
set:
- yyy
- sss
- lm
c:
cid:2
cname:chs
(
2
)通过
@Value
注解来读取
@Data
@Component
//@ConfigurationProperties(prefix = "student")
public class Student {
@Value("${student.name}")
private String name;
@Value("${student.age}")
private Integer age;
@Value("${student.sex}")
private String sex;
@Value("${student.adress}")
private String adress;
@Value("${student.birthday}")
private Date birthday;
@Value("${student.hobbys}")
private List<String> hobbys;
//@Value("${student.map}")
private Map<String,String> map;
@Value("${student.sets}")
private Set<String> sets;
//@Value("${student.c}")
private Clazz c;
}
如果通过
@value
读取的为
properties
不能读取
map
以及自定义的类型。 如果读取的
yml
那么只能读取基本数据类型以及String
和
date
类型.
5. springboot如何注册web三大组件
web
三大组件包含内容
1. Servlet:
注册
servlet
(1).
创建一个
servlet
类
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException{
System.out.println("经过了doGet方法");
}
@Override
protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
System.out.println("经过了doPost方法");
}
}
(2).
创建一个配置类
@Configuration
public class MyConfig {
//注册servlet
@Bean
public ServletRegistrationBean servletBean(){
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean();
servletRegistrationBean.setServlet(new MyServlet());
servletRegistrationBean.setName("myServlet");
servletRegistrationBean.addUrlMappings("/my");
return servletRegistrationBean;
}
2. Filter:
过滤器
注册
fifilter:
(1).
创建一个过滤器类
public class MyFilter implements Filter{
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("~~~~~~~~~经过了过滤器");
filterChain.doFilter(servletRequest,servletResponse);
//filterChain.doFilter(servletRequest,servletResponse);
}
}
(2).
注册该过滤器到
Springboot
容器中
@Configuration
public class MyConfig {
//注册servlet
@Bean
public ServletRegistrationBean servletBean(){
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean();
servletRegistrationBean.setServlet(new MyServlet());
servletRegistrationBean.setName("myServlet");
servletRegistrationBean.addUrlMappings("/my");
return servletRegistrationBean;
}
//注册filter
@Bean
public FilterRegistrationBean filterBean(){
FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
filterRegistrationBean.setName("myFilter");
filterRegistrationBean.setFilter(new MyFilter());
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
3. Listener
:监听器
6. springboot整合数据源
在
properties
配置文件中加入如下的配置
spring.datasource.druid.username=root
spring.datasource.druid.password=196055
spring.datasource.druid.url=jdbc:mysql://localhost:3306/twosupper?serverTimezone=Asia/Shanghai
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.max-active=5
测试是否连接数据库成功
@SpringBootTest
class SpringbootDatasourceApplicationTests {
@Autowired private DataSource dataSource;
@Test void contextLoads() throws Exception{ System.out.println(dataSource.getConnection()); } }
它使用的数据源模式为
Hikari
。但是在实际开发中我们习惯使用
Druid
。
使用
druid
的数据源
<!--引入druid的数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
7.springboot整合mybatis.
(
1
)引入相关的依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.SpringBoot</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--引入druid的数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!--引入mybatis和springboot的依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
</dependencies>
<!-- <build>-->
<!-- <plugins>-->
<!-- <plugin>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <excludes>-->
<!-- <exclude>-->
<!-- <groupId>org.projectlombok</groupId>-->
<!-- <artifactId>lombok</artifactId>-->
<!-- </exclude>-->
<!-- </excludes>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- </plugins>-->
<!-- </build>-->
</project>
(2)
配置
mybatis
映射文件所在的路径
spring.datasource.druid.username=root
spring.datasource.druid.password=196055
spring.datasource.druid.url=jdbc:mysql://localhost:3306/twosupper?serverTimezone=Asia/Shanghai
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.max-active=5
#配置映射文件所在的路径
mybatis.mapper-locations=classpath:/mapper/*.xml
(
3
)创建相应的
entity
以及
mapper
public interface User {
public List<User> findAll();
}
(4)
在
resources
下创建映射文件
![](https://i-blog.csdnimg.cn/blog_migrate/9d9b856091b32d8087d0f4e09b2682e2.png)
<mapper namespace="com.springboot.mapper.User">
<select id="findAll" resultType="com.springboot.entity.User">
select * from tab_user
</select>
</mapper>
(
5
)在主启动类上扫描
mapper
接口所在的包
@SpringBootApplication
@MapperScan(basePackages = {"com.springboot.mapper"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
(
6
)
controller
调用
mapper
的方法
@RestController
public class UserController {
@Resource
private User user;
@GetMapping("list")
public List<User> list(){
return user.findAll();
}
}