前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记

学习笔记

作者头像
阮键
发布2022-05-09 15:12:08
3500
发布2022-05-09 15:12:08
举报
文章被收录于专栏:JAVA人生/面试技巧

1、缓存Mybatis:

a.一级缓存:(本地缓存),与数据库同一次会话期间查询的数据库会放在本地缓存中,以后需要获取相同的数据,直接从缓存中拿,没必要再去查数据库,也称为sqlsession级别的缓存,一级缓存是一直开启的。

b.一级缓存有实效的情况(也就是没有使用到当前一级缓存的情况,效果就是还需要再想数据库发出查询):1.sqlsession变了,2.sqlsession相同,查询条件不同(当前一级缓存中还没有这个数据),3.两次查询之间执行了增删改查数据操作。

c.二级缓存:(全面缓存),基于namespace级别的缓存,一个namespace对应一个二级缓存,正常机制:1.1个会话,查询一条数据,这个数据就会被放在当前的缓存里面。

2.如果会话关闭,一级缓存中内容会被保存到二级缓存中,新的会话查询信息。3.sqlsession==EmployeeMapper==Employee   departmentMapper==DepartMent

注意:只要第一次查询的都是一级缓存,当缓存关闭后会保存在二级缓存中。

和缓存有关的设置/属性:acheEnabled=true/false;false是关闭缓存。

2、mybatis-spring整合

springMvc其实是spring的一个web模块,可以去spring管网下载spring的jar包

3、插件:利用插件为我们的目标对象产生动态代理,目标对象的目标方法要执行的时候都会来到代理对象的方法        

4、mybatis的分页插件PageHelper,可以去gitHub上面搜

5、Alt+/自动补全

6、New-----other-----spring下面对应的springBean Configuration File-----写配置文件XXX.xml;想要spring的ioc容器和web工程一起启动,要加上contextloaderlistener-contextloaderlistener

7、spring是一个开源框架,spring为简化企业级应用开发而生,使用spring可以使简单的JaveBean实现只有EJB才能实现的功能,spring是一个IOC控制反转(DI依赖注入)和AOP容器框架

有代码:ApplicationContext ctx=new ClassPathXmlApplicationContext("XXX.xml"); HelloWorld helloworld=(HelloWorld类名)ctx.getbean("helloWorld"); helloworld.hello();

(ApplicationContext代表的是IOC容器,ClassPathXmlApplicationContext代表的是接口实现类,该实现类从类路径下来加载配置文件)

(第一步创建IOC容器后会调用构造器,也就是构造函数,会对配置文件里面的内容进行初始化并且赋值)

(第二步从IOC容器中获取Bean实体)

(第三步调用hello方法)

8、Spring的属性注入:是通过setter方法注入Bean的

     构造方法注入:构造器注入在<conStructor-arg>元素里声明属性,使用构造器注入属性值可以指定参数的位置index和参数的类型type,以区分重载的构造器,例如:

<bean id="类名"  class="类路径">

  <constructor-arg value="Baoma" type="java.lang.string"></constructor-arg>

  <constructor-arg type="int">

    <value>250</value>

  </construcor-arg>

</bean>

属性值也可以使用value直接进行配置。

也可以使用ref="id的名字也就是<property name="car类名">找到内容

null值和级联属性

<constructor-arg ref="car"></constructor-arg>

<constructor-arg><null></constructor-arg>

相当于把car里面值都赋为null;

9、为级联属性赋值。spring框架的属性需要先初始化后才可以为级联属性赋值,否则会有异常,而struct2框架可以自动创建级联属性

<constructor-arg ref="car"><constructor-arg>

<property name="car.maxspeed' value="250"></property>

以上的是对car类里面的属性赋值为250;

如果是集合属性该如何赋值呐?

<property name="properties">

<!--使用props和prop子节点来为Properties属性赋值-->

<props>

        <prop key="user">root</prop>

        <prop key="password">123</prop>

        <prop key="jdbcURL">jdbc:mysql://test</prop>

        <prop key="driverclass">com.mysql.jdbc.Driver</prop>

</props>

</property>

未完待续。。。。。。

1、使用Bean的scope属性来配置bean的作用域,singleton:默认值,容器初始时创建bean实例,在整个容器的生命周期内只创建这一个bean,他是单例的

     prototype:原型的容器,初始化时创建bean实例,而在每次请求时都创建一个新的bean实例并返回。

使用外部属性文件

      可以使用BeanFactory后置处理器,这个处理器允许用户将Bean配置的部分内容外移到属性文件里,可以在Bean配置文件里使用形式为${Var}的变量

2、 SPEL:一般引用Bean,属性和方法,下面还有其他情况

     1)、引用其他对象:通过value属性和SPEL配置Bean之间的应用关系

           <Property name="prefix" value="#{prefixGenerator}"></property>

     2)、引用其他对象的属性

           SPEL:调用静态方法或静态属性,通过T()调用一个类的静态方法,他将返回一个Class Obese,然后再调用相应的方法或属性;

          <property name="initValue" 

                                       value="{T(java.lang.Math).PI}"></property>

3、New-----Class-----Name:起名字,同时在这里有一个Add可以添加想要的接口

4、通过静态工厂方法来配置bean,注意不是配置静态工厂实法实例,而是配置bean实例

     class属性:指向静态工厂方法的全类名

     factory-method:指向静态工厂方法的名字

     factory-arg:如果工厂方法需要传入参数,则使用配置参数

<!--通过实例工厂方法来配置bean-->

factory-bean属性:指向实例工厂方法的全类名

factory-method:指向静态工厂方法的名字

factory-arg:如果工厂方法需要传入参数,则使用他来配置参数

5、配置bean如何来配置

1).通过工厂方法(静态工厂方法或者实例工厂方法)

2).FactoryBean方法:

<bean id="car" class="com.XXX.XXX">

<property name="brand" value="BMW"></property>

</bean>

6、在classPath中扫描组件

<context:component-scan>:方法

例如:<context:component-scan:

           base-package="属性指定一个需要扫描的基类包,spring容器将会扫描这个基类包以及其子包里面所有的类"

          resource-pattern="希望扫描特定的类而非基包下的所有类,过滤特定的类,例如:

<context:component-scan:

base-package="com.atguigu.spring.beans"

resource-pattern="autowire/*.class"/>

 7、<context:include-filter>子节点表示要包含的目标类

<context:exclude-filter>子节点表示要排除在外的目标类

组件装配<context:component-scan>元素还会自动注册

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档