SpringBoot

打印 上一主题 下一主题

主题 891|帖子 891|积分 2673

1.  回顾

spring的AOP:
(1)什么是AOP? 面向切面编程,它是对OOP的一种补充技术。把业务代码和非业务代码分离。在不改变业务代码的前提下,可以对业务代码进行增强。
(2)应用场景: (1)日志 (2)权限校验 (3)事务处理。
(3) 核心的概念:
​      【1】切面:
​       [2] 切点:
​       [3]通知: 前置  后置  后置返回  异常  环绕

  • 事务: 概念。 如何实现事务? tx aspect依赖   配置事务切面类  开启事务驱动注解
2. 正文
  1. 1. 什么是springboot?
  2. 2. 为什么使用springboot?
  3. 3. 如何创建springboot工程?
  4. 4. java中如何读取springboot配置文件的内容?
  5. 5. springboot注册web组件
  6. 6. springboot自动装配原理?
  7. 7. springboot整合数据源?
  8. 8. springboot整合mybatis.
复制代码
3.什么是springboot?

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
4. springboot的优点

(1)可以创建独立的Spring应用程序,并且基于其MavenGradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
5. 如何使用springboot搭建工程

【1】第一种快速搭建-----必须联网
【2】使用maven来搭建。
5.1 第一种快速搭建-----必须联网





编写controller代码
  1. @RestController
  2. @RequestMapping("/hello")
  3. public class HelloController {
  4.     @GetMapping("/index") //java对象--转换为json必须引入jackson
  5.     public Map<String,Object> index(){
  6.         Map<String,Object> map=new HashMap<>();
  7.         map.put("name","成毅");
  8.         map.put("age",15);
  9.         return map;
  10.     }
  11. }
复制代码
注意: controller包必须在主启动类所在包下。 默认扫描的包为主启动类所在的包。
5.2 聊聊springboot中的配置



5.3 第二种搭建springboot----了解

(1)创建一个maven工程
(2) pom中添加相关的依赖
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.    
  7.     <parent>
  8.          <artifactId>spring-boot-starter-parent</artifactId>
  9.         <groupId>org.springframework.boot</groupId>
  10.         <version>2.7.5</version>
  11.     </parent>
  12.     <groupId>com.ykq</groupId>
  13.     <artifactId>qy168-springboot02</artifactId>
  14.     <version>1.0-SNAPSHOT</version>
  15.    
  16.     <dependencies>
  17.         <dependency>
  18.             <groupId>org.springframework.boot</groupId>
  19.             <artifactId>spring-boot-starter-web</artifactId>
  20.         </dependency>
  21.     </dependencies>
  22. </project>
复制代码
(3)创建一个springboot配置文件--application
(4)创建主启动类
  1. @SpringBootApplication
  2. public class SpringBootApp {
  3.     public static void main(String[] args) {
  4.         SpringApplication.run(SpringBootApp.class,args);
  5.     }
  6. }
复制代码
6. java读取springboot配置文件中的内容

6.1 springboot配置文件的种类

springboot提供了两种格式的配置文件.   内容格式不同。
第一种:属性文件 后缀: properties

第二种:yaml文件  后缀 yml

如果上面两个配置文件的内容相同: 以properties配置为主。  如果上面配置文件的内容不同:都能用。
6.2 如何读取springboot配置文件中的内容

比如我们使用OSS完成文件上传时,之前把OSS相关的内容密钥,bucket等信息都写在java代码,在实际开发中肯定不允许。因为属于硬编码。以后项目上线后密钥和bucket等信息都需要改为客户。都需要修改了源码。 以后写都应该提取到配置文件中。我们掌握如何java代码读取配置文件中的内容。
在spring中提供了两个方式读取:
第一种: @Value

思考: 它只能一个一个的读取。能否封装一个实体类,把读取的内容放入实体类属性中。
第二种: @ConfigurationProperties

第一种@Value只能读取配置文件中基本类型和字符串类型。而第二种可以读取任意类型的值

7.  springboot注册web组件

servlet:-----(1)定义一个Servlet类 (2)重写doGet和doPost方法 (3)把自定义的serlvet注册到web.xml文件。
filter: ----(1)定义一个filter类  (2)dofilter方法  (3)把自定义的过滤器注册到web.xml
思考: 我们现在的springboot工程没有web.xml文件了。如何把自定义或者第三方的过滤器注册到tomcat容器中。
7.1 注册自定义的Servlet

(1)自定义一个Servlet并重写doGet和doPost方法
  1. public class MyServlet extends HttpServlet {
  2.     @Override
  3.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  4.         System.out.println("执行了doget方法");
  5.     }
  6.     @Override
  7.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  8.         System.out.println("执行了doPost方法~~~~~~~~~~~~~~~~~~~~~~~");
  9.     }
  10. }
复制代码
(2)把自定义的Servlet注册到内置tomcat中。
  1. @Configuration //等价于spring配置文件.
  2. public class MyConfiguration {
  3.     @Bean //相当于spring配置文件中 <bean >  把该方法返回的对象交于spring容器来管理了
  4.     public ServletRegistrationBean<Servlet> registrationBean(){
  5.         ServletRegistrationBean<Servlet> registrationBean=new ServletRegistrationBean<>();
  6.         registrationBean.setServlet(new MyServlet());
  7.         registrationBean.setName("my");
  8.         registrationBean.addUrlMappings("/my");
  9.         return registrationBean;
  10.     }
  11. }
复制代码
(3)测试

7.2 注册自定义过滤器

(1)创建一个过滤器类并重写相应的方法。
  1. public class MyFilter implements Filter {
  2.     @Override
  3.     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  4.         System.out.println("经过了过滤器~~~~~~~~~~~~~~~~~~~~~~~~");
  5.     }
  6. }
复制代码
(2)把自定义的过滤器注册到内置的tomcat中
  1. @Bean
  2.     public FilterRegistrationBean<Filter> registrationBean02(){
  3.         FilterRegistrationBean<Filter> registrationBean=new FilterRegistrationBean<>();
  4.         registrationBean.setFilter(new MyFilter());
  5.         registrationBean.setName("myFilter");
  6.         registrationBean.addUrlPatterns("/*");
  7.         return registrationBean;
  8.     }
复制代码
(3)测试
8. springboot自动包扫描的原理

(1)查看@SpringBootApplication注解---它是一个复合注解

(1)第一层含义自动包扫描  第二层含义自动装配



指定包扫描路径


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表