从springMVC总结再回顾一下 60节
整合就是应用框架,并且把这个框架放到IOC容器中
web容器:装springMVC和controller相关的web组件
root容器:装业务和持久层相关的组件
子容器可以引用父容器中的组件,父容器不能调子容器
一个容器可以指定多个配置类
spring-aop不用导,因为他被spring-context依赖传递了
@Data
是 Java 中 Lombok 库提供的一个注解,用于简化实体类的代码编写。它通过自动生成常见的 getter、setter 方法、toString()
方法、equals()
和hashCode()
方法,减少手动编写样板代码的工作量。
logback日志输出 下去了解一下
实现一个接口WebMvcConfigurer,作用提供对应的方法简化配置springmvc相关的组件
之前是自己new这么配置的,现在只需要加一个注解@EnableWebMvc,就会自动配handlerMapping handlerAdapter 和json处理器
第一个黄框可以进行静态资源处理,相当于二秘书
蓝框补全
业务层配置类:service、aop、tx
蓝框是对应mybatis的事务实现
@EnableTransactionManagement代表开启事务注解支持
???怎么注入连接池
1.调用Bean方法 2.在形参列表上声明一个对应类型,由ioc容器帮我们注入连接池
实战找问题再总结
这段代码是用Java配置来设置Spring框架中的事务管理。让我们逐步解析这段代码:
1.
@EnableTransactionManagement
这个注解是用来启用基于注解的事务管理支持的。当你在配置类上使用了
@EnableTransactionManagement
,它会激活对@Transactional
注解的支持,使得你可以在服务层的方法或类上使用@Transactional
来声明事务边界。2.
ServiceJavaConfig
类这是一个普通的Java配置类,用来替代传统的XML配置文件。你可以在这里定义各种bean、配置事务管理器、AOP切面等。根据Spring的约定,配置类通常带有
@Configuration
注解(虽然在这个例子中没有显示,但在实际应用中应该是有的),表明这是一个Spring配置类。3.
transactionManager
方法这个方法负责创建并返回一个
TransactionManager
实例,具体来说是一个DataSourceTransactionManager
,这是Spring提供的用于管理JDBC数据源事务的实现。参数
DataSource dataSource
: 这个参数是通过依赖注入的方式传入的。通常,在Spring配置中,你会有一个DataSource
bean,这个方法将会自动接收到该bean作为参数。DataSource
是JDBC的一部分,表示连接到数据库的数据源。方法体
- 创建了一个
DataSourceTransactionManager
的实例,并设置了它的dataSource
属性。setDataSource(dataSource)
方法将给定的数据源与事务管理器关联起来,这样当有事务需要被管理时,DataSourceTransactionManager
就知道要使用哪个数据源来进行事务的操作,比如开始、提交或回滚事务。返回值
- 返回的是
TransactionManager
类型的对象,但实际上是DataSourceTransactionManager
的实例。Spring的事务管理基础设施可以识别并使用这个对象来管理事务。4. 隐含的Bean定义
虽然代码中没有显式地使用
@Bean
注解,但是根据Spring的规则,如果在一个@Configuration
类中定义了一个非私有的、返回值不是void
的方法,那么这个方法会被认为是一个bean定义工厂方法。也就是说,每次Spring容器启动时,都会调用transactionManager
方法,并将其返回的对象注册为一个名为transactionManager
的bean。完整的例子
为了使这段代码更加完整,下面是一个可能的配置类的完整示例,包括
@Configuration
和@Bean
注解:import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; @Configuration @EnableTransactionManagement public class ServiceJavaConfig { @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(); dataSourceTransactionManager.setDataSource(dataSource); return dataSourceTransactionManager; } // 其他bean定义... }
在这个完整的例子中,
@Configuration
告诉Spring这是一个配置类,而@Bean
注解则明确指出了transactionManager
方法应该被视为一个bean定义。这确保了Spring能够正确地处理和管理由这个方法返回的PlatformTransactionManager
实例。
springIOC容器管理的组件都是为了全局复用的,用一次就丢掉的这种不用加(SqlSessionFactoryBuilder)
SqlSessionFactory会缓存mybatis的配置文件
整合包的作用就是提供各种FactoryBean,封装它们自己框架创建api的逻辑过程
这里核心就1个问题:怎么更加方便的拿到SqlSessionFactory 和 Mapper
持久层配置类:连接池、sqlSessionFactory、Mapper代理对象
第一种mybatis配置方式-xml中不再写数据库链接信息(连接池DruidDataSource和mapper接口的包指定)
保留mybatis-config.xml(分页插件、别名、驼峰映射)
@Configuration 配置类注解
@PropertySource("classpath:jdbc.properties")读取外部的配置文件
@Value
是 Java 中用于从配置文件、环境变量或直接赋值中注入值的注解,通常与 Spring 框架一起使用。它可以帮助开发者将外部配置的属性值注入到类的字段中,从而实现代码与配置的分离。
创建一个连接池
getObject方法会把返回的对象自动加入到ioc容器中
注释中是对象不是兑换
【弹幕】将SqlSessiongFactory放入,通过它得到SqlSession,然后得到Mapper代理对象,但这个步骤直接交给IOC容器去解决。咱们之间把两者放入IOC就行
zijiu阿大哥 这块真的懵
第二种mybatis配置方式-完全配置类
去掉 mybatis-config.xml
不保留外部配置文件,全部mybatis的属性都在代码中设置
【弹幕】上节讲xml下怎么配置SqlSessionFactory和Mapper,一个配置类配置数据源,一个配置类配置SqlSessionFactory和Mapper
这个实操第一次失败,回头再搞
初始化配置类
/代表拦截所有
【美美回顾】Postman介绍
又又没了 无力回天了
四个接口的增删改查
前端对应的依赖管理的工具:npm
配置镜像 提高下载速度。但是我的npm版本更新不了??
讲义里面是错的,正确网址
#设置阿里镜像源
npm config set registry http://registry.npmmirror.com
package.json相当于maven里面的pom.xml文件,这里面表明它需要哪些第三方的依赖
ok呀 把之前的低版本删了也没解决 先过吧后面有需要再下载一次
R是统一结果集, 也就是统一你Controller返回的json格式
Slf4j 是 lombok 提供的接口,logback是实现。
就是一系列对象嵌套,感觉和之前的一对多多对一的那个知识点很香。ok实际上也就是返回一个R对象,R对象里面有一个pagebean
加两注解用于校验
前端向后端发请求的过程就是联调
后台可以添加设置,允许跨域访问,就是非同域进行访问
这个注解也可以加到指定接口上
这块过了快两月
先总结一下疑惑
1.代码中注解含义、作用
2.两个小测试没跟(每次idea就出错)
3.nodejs删了低版本的还没好
4.postman使用
5.初始化类原理?
ok磨磨唧唧开学了玩大了