Spring 基础知识

Spring 基础

依赖注入的三中方式:
interface injection/setter injection/constructor injection

现在比较常用的是:setter/constructor注入,一个接口可以由多个实现。

 

spring 利用DBCP获得连接池:(当spring 运行在一个不提供datasource的环境时)
使用org.apache.commons.dbcp.BasicDataSource作为数据源注入
需要在classpath中加入:commons-dbcp.jar/commons-pool.jar/commons-collections.jar

spring 的jndi数据源配置:
利用org.springframework.jndi.JndiObjectFactoryBean注入
classpath中加入:spring-context.jar

在tomcat中用DBCP取得连接池,通过jndi的方式来取得数据库连接;

 

利用TransactionProxyFactoryBean
<prop key="insert*">PROPAGATION_REQUIRED,readOnly,-RollbackableBizException</prop>
意思:以insert开头的方法在目前的事务中操作,
PROPAGATION_REQUIRED:如果不存在就新建一个
readOnly:只读
-RollbackableBizException:发生指定异常时回滚事务
+RollbackableBizException:发生指定异常时提交事务

 

 最大特点:独立于具体的关系型数据库



在使用hibernate和spring整合的时候,可以将事务管理交给spring来处理,可以用声明式的事务处理。
只需使用org.springframework.orm.hibernate.HibernateTransactionManager,同时注入:sessionFactory
Bean Wrapper

DI的理解:是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定(DI的第种方式)

//动态加载了User类并实例化
Object obj = Class.forName("net.xiaxin.beans.User").newInstance();
//通过BeanWrapper set 对象的属性值
BeanWrapper bw = new BeanWrapperImpl(obj);
bw.setPropertyValue("name", "Erica");

BeanWrapper实现理解:动态加载User类,通过调用User.setName()方法设置name属性。


Bean Factory

bean的配置项目:
<bean
id="TheAction" ⑴------------------BeanFactory获取JavaBean实例时需以此作为索引名称
class="net.xiaxin.spring.qs.UpperAction" ⑵-------类名
singleton="true" ⑶----------------"true"_BeanFactory作用范围内,只维护此Java Bean的一个实例/"false"_获取Java Bean时,BeanFactory每次都将创建一个新的实例返回
init-method="init" ⑷----------用于资源的初始化
destroy-method="cleanup" ⑸----用于资源释放
depends-on="ActionManager" ⑹-----一般不用配置
>

理解:可以看成一个EJB容器,提供生命周期服务、事务服务、安全性服务、缓存服务等。



ApplicationContext

ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性,可以在web.xml中对ApplicationContext配置。
ApplicationContext提供的扩展功能:
1-国际化支持

2-资源访问:ApplicationContext.getResource方法提供了对资源文件访问支持

3-事件传播

理解:同BeanFactory类似,ApplicationContext提供了BeanFactory的所有功能。
          ApplicationContext主要是针对Java EE应用而来的,尤其是Web应用(WAR)。
          ApplicationContext会被注册到ServletContext对象中。



Web Context

加载器:ContextLoaderListener/ContextLoaderServlet
分别在web.xml中添加:
<listener>
 <listener-class>
  org.springframework.web.context.ContextLoaderListener
 </listener-class>
</listener>

<servlet>
 <servlet-name>context</servlet-name>
  <servlet-class>
  org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>

Web容器会自动加载/WEB-INF/applicationContext.xml并初始化

指定配置文件位置情况:
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>
   /WEB-INF/classes/applicationContext-common.xml;
            /WEB-INF/classes/applicationContext-aop.xml;
            /WEB-INF/classes/applicationContext-bs.xml;
            /WEB-INF/classes/applicationContext-dao.xml;
            /WEB-INF/classes/applicationContext-ucc.xml
     </param-value>
</context-param>

配置完成之后就可以通过:WebApplicationContextUtils.getWebApplicationContext方法得到ApplicationContex引用。




 JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库。
 要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它是连接JDBC API与具体数据库之间的桥梁。


hibernate.jdbc.fetch_size:用来决定JDBC的获取量大小 50
hibernate.jdbc.batch_size:会开启Hibernate使用JDBC2的批量更新功能取值达到多少数据提交一次. 建议值在 5 和 30之间。
spring 的事务管理:(有编程/声明两种)



自动连接DB的方式效率比较低下,可以预先设定好一定数量的连接并存放在connection pool中,提高效率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值