一、Maven创建SpringBoot
1.pom文件中继承springboot的父工程并且引入web依赖
1 |
//springboot引入 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.1</version> </parent> //web依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> |
2.创建一个主启动类(controller service mapper 必须放在主启动类所在的包下或者子包下)
1 |
//创建主启动类并加入注解 @SpringBootApplication public class MavenText { public static void main(String[] args) { SpringApplication.run(MavenText.class,args); } } |
二、springboot工程中常见的配置文件类型并读取
1.properties属性文件类型
1 |
server.port=8081 server.tomcat.connection-timeout=4000 student.name=wanggang student.age=19 student.birthday=2020/08/09 student.hobbys=ks,sj,dyx student.sets=zj,sl,kl student.maps.k1=zj student.maps.k2=jk student.maps.k3=hk student.c.cid=132 student.c.cname=queaina |
2.yml属性文件类型
1 |
server: port: 8082 tomcat: connection-timeout: 40000 student: name: df age: 13 birthday: 2020/08/21 hobbys: -ks -il -ui sets: -shj -dgfjnsko -sdfgdf maps: k1: we k2: er k3: gf k4: gf c: cid: 23 cname: qy132 |
3.读取方法
1)通过@ConfigurationProperties(prefix = “student”)注解在类上
2)通过@Value(”${student.age}”)注解在属性上(如果读取属性为properties则不能读取map和自定义数据类型,如果读取yml只能读取基本数据类型、String和date类型)
三、springboot注册web三大组件
创建servlet类,创建过滤器类,创建配置类
1 |
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方法"); } } |
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);//放行 } } |
1 |
@Configuration public class MyConfig { @Bean public ServletRegistrationBean servletBean(){ ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(); servletRegistrationBean.setServlet(new MyServlet()); servletRegistrationBean.setName("myServlet"); servletRegistrationBean.addUrlMappings("/my"); return servletRegistrationBean; } @Bean public FilterRegistrationBean filterBean(){ FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(); filterRegistrationBean.setFilter(new MyFilter()); filterRegistrationBean.setName("myFilter"); filterRegistrationBean.addUrlPatterns("/*"); return filterRegistrationBean; } } |
效果如图:
四、springboot整合数据源,mybatis
1.引入相关依赖
1 |
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-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> <dependency> <groupId>repMaven.com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>repMaven.org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> </dependencies> |
2.配置mybatis映射文件的路径
1 |
#配置数据源信息 spring.datasource.druid.username=root spring.datasource.druid.password=root spring.datasource.druid.url=jdbc:mysql://localhost:3306/twosupper?serverTimezone=Asia/Shanghai spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver #配置映射文件所在的路径 mybatis.mapper-locations=classpath:/mapper/*.xml |
3.创建mapper和映射文件
1 <?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.zj.springbootdatesource.mapper.EmpMapper"> <select id="findAll" resultType="map"> select * from tab_emp </select> </mapper> public interface EmpMapper { List<Map> findAll(); }
4.在主启动类上扫描mapper接口的包,controller调用mapper方法
1 |
@SpringBootApplication @MapperScan(basePackages = {"com.zj.springbootdatesource.mapper"}) public class SpringbootDatesourceApplication { public static void main(String[] args) { SpringApplication.run(SpringbootDatesourceApplication.class, args); } } |
1 |
@RestController public class Emp { @Autowired private EmpMapper empMapper; @GetMapping("list") public List<Map> list(){ return empMapper.findAll(); } } |