Spring学习笔记

1.面向抽象编程:先定义借口,然后再定义借口的Impl。比如userDao   ,mysqluserDaoImpl ,oracleuserDao等等。。想实现什么接口都可以,很灵活。

private UserDao userDao = new UserDaoImpl() ;  在配置文件里面可以写具体的实现。只需要改Impl。

2.Spring可以动态的装配,可以把dao和service放一起,在一个类里面把属性注入到配置文件中。

<bean name="applicationService" class="com.igate.oa.service.ApplicationService"
  parent="baseService">
  <property name="applicationDao" ref="applicationDao" />
  <property name="applicationTypeDao" ref="applicationTypeDao" />
 </bean>

property 相当于setapplicationDaot。等等。。

3.下面的BeanFactory的子类ClassPathXmlApplicationContext可以包含几个xml文件,为了避免影响,见项目。

我们一般不用BeanFactory ,而一般用ApplicationContext,因为它的功能更强大。BeanFactory不能完成bean的生命周期,而ApplicationContext能,还能完成其他的一些功能。

4.Spring依赖注入:DI  ,控制翻转:IOC 。见视频08。

5.   FAQ:不给提示:

a)     window – preferences – myeclipse – xml – xml catalog

b)     User Specified Entries – add

                 i.          Location:       D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsd

                ii.          URI:             file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd

               iii.          Key Type:      Schema Location

              iv.          Key:              http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

6.springBean的生命范围:singleon单例(不管拿多少次bean,都是同一个),prototype(每次拿bean都是新的,struts2里面就是这个),request,session,globalsession

7.自动装配:(视频14)byName byType   也是不用写property ,用的不多。也可以写在beans标签里面default-autowire=""  ,在bean里写autowire=“defaulet”

   

private String toString(){}

8.spring生命周期:lazy-init="true"   一般不用 :意思就是启动的时候不用启动所有的bean。

9.视频15:init-method="init"  destroy-method="destroy" (关闭时调用).不要和prototype一起用。

10.spring的annotation配置:默认是byType   自动找到set方法上面写@Autowired

可以指定具体注入bean的名字:@Qualifier

@Resource  默认byName,找不着再按类型,写(name=“”)这种方法用的比@Autowired多。

11.另外一种注解annotation,这样配置文件里bean的配置都不用写了。

11.2:一般都要写上名字,除非名字就类名的首字母小写。

 @Component @Service @Controller @Repository  4个都是一样的。

a)     初始化的名字默认为类名首字母小写

b)     可以指定初始化bean的名字(value=”” 或省略)

UserDAOImpl类  Component("u")  ,表示它的value是u,这样在@Resource里写name=u就对应起来了

UserService类

UserService里面写了这个,测试程序就可以用.getBean("userService");

1.     @Autowired

a)     默认按类型by type

b)     如果想用byName,使用@Qulifier

c)     写在private field(第三种注入形式)(不建议,破坏封装)

d)     如果写在set上,@qualifier需要写在参数上

2.     @Resource(重要)

a)     加入:j2ee/common-annotations.jar

b)     默认按名称,名称找不到,按类型

c)     可以指定特定名称

d)     推荐使用

e)     不足:如果没有源码,就无法运用annotation,只能使用xml

3.     @Component @Service @Controller @Repository

a)     初始化的名字默认为类名首字母小写

b)     可以指定初始化bean的名字(value=”” 或省略)

12.注解的生存范围,和方法。如下:

1.     @Scope

2.     @PostConstruct = init-method; @PreDestroy = destroy-method;

 13.spring DataSource:                  视频25

 

14.spring 整合   见项目 (dataAccessContext.xml)    视频29

Spring_Hibernate_使用Annotation进行声明式事务管理  视频29     hibernate的异常为RunTimeException   

 现在@Transactional自动遇到异常自动回滚(RunTimeException   )。。而不用在方法里面写try  catch

 

别的方法调这个方法,(别的方法)有Transactional的话就用这个@Transactional,没有的话创建一个新的。

 

Spring_Hibernate_使用Xml进行声明式事务管理:

readonly只是spring提高性能优化,还有就是不允许进行修改操作的时候可以这样做,不过要确定没有改,删,更新等等,只有读。。

事务管理,项目一般用xml配置。

 15.packageToScan :springHibernate的配置。annotation的配置实体类。

xml:

<property name="mappingDirectoryLocations">
   <list>
    <value>classpath:com/igate/oa/vo/hbm</value>
   </list>
  </property>

 16.hibernateTemplate

callBack回调,钩子函数。执行到一半的时候,掉我们写的函数。

项目中的HibernateDaoSupport没法用annotation注入,用xml。因为要注入sessionFactory。

 17.ssh整合视频 25开始  声明式事务管理 视频28

18. 纯的jsp + java +jdbc     视频35  项目 23  

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值