A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.      Spring mvc:

很多企业只使用Spring+Hibernate框架,不使用Struts2+hiber+Spring。

2.      Spring上下文

Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如:国际化,(org.springframework.web.servlet.i18n.SessionLocaleResolver)字符编码(org.springframework.web.filter.CharacterEncodingFilter)

3. AOP注入(面向切面编程(也叫面向方面))(事务管理机制体现)

通过配置管理特征。Spring AOP模块直接将面向方面的编程功能集成到Spring框架上来了。典型的应用是:事务管理。这个本人认为Spring对我最实用的地方,感觉没它不行。写方法的时候,我就不用去管如果插入不成功,我要手动去删除以前保存的数据。只关心我要做的事情。我称之为:面向方面编程让面向对象编程更面向对象编程。我不知道说得对不对,我是这样说的。例如:

sPart = (SPart)this.getHibernateTemplate().merge(sPart);

this.getHibernateTemplate().flush();

上面的语句已经被提交,可以查询出来,并且已经有id了。原则上在数据库已经存在。但是,如果在同一个事务中的其他方法不成功,这些数据在被删除(回


4. Spring定时器(quartz

系统中很多时候都需要定时做某件事的需求,比如:定时更新首页新闻、定时更新查询索引,定时修改一些数据等等。


5. IOC模式(控制反转(依赖注入))

核心容器的主要组件是BeanFactory,他是工厂模式的实现,BeanFactory使用了控制反转(IOC)模式将应用程序的配置和依赖行规范与实际应用代码分开。另外一个名为:依赖注入

我个人对IOC一直印象不深刻。因为有了它让我获得太舒服了。还以为我本来就这样写,这样写天经地义,就像我们对父母的好容易忽视一样。例如下面的代码:

1、在测试类、main方法中:

ApplicationContext context = new FileSystemXmlApplicationContext(   
                    "applicationContext.xml");   
            Animal animal = (Animal) context.getBean("animal");   
            animal.say();

2、在控制器中:

   private ISysCountService sysCountService = null;

   publicvoid setSysCountService(ISysCountService            sysCountService) {

      this.sysCountService = sysCountService;

}

这些都不陌生吧,但是这是ICO模式的实例。我注意到这个地方是因为有一个新同事进公司,访问数据不成功。后来我帮他加上了这个就行了。他就问我为什么呢?我说注入啊。他又问:注入怎么呀?我脑子一翁,“对呀,注入什么呀?当然是注入服务接口,让控制器能直接调用我们在接口的方法,但为什么这样注入,注入后访问的原理是什么呢?”我都蒙了。读书的时候去想过,后来没注意。原理这里就不写了,本文主要是记录Spring有哪些常用的功能在项目可以见到。


6. Spring DAO

IOC在项目的使用过程会有它的影子:

<bean name="/login.htm" class="cn.com.union.controller.LoginController">

      <property name=" sysCountService"

ref=" sysCountService" />

      <property name="methodNameResolver"             ref="methodNameResolver" />

   </bean>

<property name="sysCountService"中的sysCountService在控制器中找到吧?不是 IOC注入的服务接口嘛。ref=" sysCountService"指向bsoBean.xml:

<bean id=" sysCountService"

      class="cn.com.union.bso.SysCountServiceImp">

      <property name="sessionFactory" ref="sessionFactory" />

      <property name="dataBaseAdapter" ref="dataBaseAdapter" />

   </bean>

这个类是接口的实现类,终于见到和DAO有点关系了。

7. Spring ORM

这个我是实在想不通,这个名词是偶然见到的。ORM(Object/Relation Mapping的简称),从名字看,我最先想到的数Hibernate的事呀,怎么是Spring ORM来啦。在项目中找有没有它的影子呢?

在applicationContext.xml发现与实体类相关的影子的代码,不知道对不对。

<bean id="sessionFactory"

      class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

      <property name="dataSource" ref="dataSource" />

      <property name="mappingDirectoryLocations">

        <list>

           <value>classpath:/cn/com/adtech/riss2/domain</value>

        </list>

      </property>

看到这里我突然想起我当时学编程的时候,没有把Hibernate和Spring分开讲,连接数据库一致都是用这样的配置方式。所以没有印象。在马士兵的视频教程-Hibernate篇好像单独配置Hibernate连接数据库不是这样连接的。我就记得我们老师当年把两个结合起来讲的理由是:现在大部分企业级应该都是用Spring提供的配置方式代替Hibernate的配置方式。


3 个回复

倒序浏览
看不懂了呢
回复 使用道具 举报
有点看不懂。。。。。。
回复 使用道具 举报
为何红名了???
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马