## 一、通过Maven的形式创建一个SpringBoot项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zlf7tBDD-1624023430311)(C:\Users\送给小~1\AppData\Local\Temp\1623999859571.png)]
1、配置pom/xml文件
```xml
<!-- 引入Spring Boot父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
</parent>
<!-- 引入web启动依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
2、创建启动类并加入注解
注意:contreller service mapper等必须在主启动类所在的包下或子包
```java
//创建启动类并加入注解
@SpringBootApplication
public class MavenApp {
public static void main(String[] args) {
SpringApplication.run(MavenApp.class,args);
}
}
```
## 二、SpringBoot工程中常见的配置文件类型。
1、配置文件类型:properties(属性文件类型) | yml 共两个。注意:properties比yml优先级高,一般只存在一个
2、文件创建完成图标都是叶子形状:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLWULH4V-1624023430313)(C:\Users\送给小~1\AppData\Local\Temp\1624003176745.png)]
如果形状不对,可能是没有引入webjar包,可能是名字错误
3、Java读取SpringBoot配置文件中的内容+自定义属性值+书写格式
##### 自定义属性值:注解@ConfigurationProperties(prefix = "前缀")方法
#####
```
@Data //代替setget方法、toString方法 --需要因为jar依赖
@Component //有spring容器创建对象
@ConfigurationProperties(prefix = "student") // 读取配置文件;prefix 前缀
public class Student {
private String name;
private List<String> appetite;
private Set<String> sets;
private Map<String,String> maps;
private Date date;
private Emp emp;
}
```
#####
##### properties:
```properties
# 设置端口号
server.port=8081
#自定义属性
student.name=ch
#List<String> 多个属性值用 , 隔开
student.appetite=a strong man,A lot of strong men
#Set<String> 多个属性值用 , 隔开
student.sets=aa,bb.cc
#Map<String> Map 在此注明Key的值
student.maps.k1=1
student.maps.k2=2
student.maps.k3=3
student.date=2020/01/01
student.emp.id=1
student.emp.name=hg
```
##### yml:
```yaml
#设置端口号
server:
port: 8082
#自定义属性值
student:
name: hyf
# list<String>
appetite:
- Sexy woman
- sexy figure
sets:
- yy
- y1
#Map<String>
maps:
k1: xx
k2: tt
date: 2020/10/20
emp:
id: 2
name: zs
```
##### 注解@Value:如果通过@value读取的为properties 不能读取map以及自定义的类型。 如果读取的yml那么只能读取基 本数据类型以及String和date类型
```java
@Data
@Component
public class Students {
@Value("${student.name}")
private String name;
// @Value("${student.appetite}")
private List<String> appetite;
// @Value("${student.sets}")
private Set<String> sets;
// @Value("${student.maps}")
// private Map<String,String> maps;
@Value("${student.date}")
private Date date;
// @Value("${student.emp}")
// private Emp emp;
}
```
## 三、注册web三大组件
##### 1、servlet
创建一个servlet
```java
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");
}
}
```
创建一个配置类
```java
@Configuration // 声明该类为配置类,等价于Spring的配置文件
public class MyConfig {
@Bean //ServletRegistrationBean servlet的注册器
public ServletRegistrationBean servletBean(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
// <servlet-class>servlet</servlet-class>
servletRegistrationBean.setServlet(new Myservlet());
//<servlet-name>名称</servlet-name>
servletRegistrationBean.setName("Myservlet");
/* <servlet-mapping>
<url-partern><url-partern>
</servlet-mapping>
*/
servletRegistrationBean.addUrlMappings("/My");
return servletRegistrationBean;
}
//注册Filter
@Bean
public FilterRegistrationBean FilterBean(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new Myfilter());
filterRegistrationBean.setName("MyFilter");
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}
```
2、创建一个Filter
```java
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);//放行
}
}
```
## 四、 整合数据源
#### 1、建立项目所需依赖jar包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DiyLp2LW-1624023430315)(C:\Users\送给小~1\AppData\Local\Temp\1624017438190.png)]
#### 2、在application.properties属性文件中配置数据源信息:
```properties
# 配置数据源的信息
spring.datasource.username=root
spring.datasource.password=xi2020%@
spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot?serverTimezone=Asia/Shanghai
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
```
注意: 8.0 以后数据源url后面要加sserverTimezone=Asia/Shanghai
```xml
<dependency>
<groupId>mysql</groupId>
<!-- 8.0 以后数据源url后面要加serverTimezone= -->
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
```
#### 3、通过SpringbootDatasourceApplicationTests测试是否连接成功
```java
@SpringBootTest
class SpringbootDatasourceApplicationTests {
@Autowired
private DataSource dataSource;
@Test
void contextLoads() throws SQLException {
System.out.println(dataSource.getConnection());
}
}
```
#### 4、数据源模式为Hikari、开发习惯使用Druid。更改数据源模式为Druid
1、在pom.xml文件中加入druid依赖
```xml
<!-- 配置Druid数据源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
```
2、修改application.properties属性文件中配置数据源信息:
```properties
spring.datasource.druid.username=root
spring.datasource.druid.password=xi2020%@
spring.datasource.druid.url=jdbc:mysql://localhost:3306/spring_boot?serverTimezone=Asia/Shanghai
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
```
## 五、SpringBoot整合mybatis.
##### 1、引入spring boot和mybatis依赖-
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
```
##### 2、注册application.properties配置映射文件所在路径
```properties
# 配置映射文件所在路径
mybatis.mapper-locations=classpath:/mapper/*.xml
```
3、写xml、实体、controller、
注意要在SpringbootDatasourceApplication主启动类中扫描mapper接口所在的包
```java
@MapperScan(basePackages = {"com.zzw.springbootdatasource.mapper"})
```
2、注册application.properties配置映射文件所在路径
```properties
# 配置映射文件所在路径
mybatis.mapper-locations=classpath:/mapper/*.xml
```
3、写xml、实体、controller、
注意要在SpringbootDatasourceApplication主启动类中扫描mapper接口所在的包
```java
@MapperScan(basePackages = {"com.zzw.springbootdatasource.mapper"})
```