`
anyeeye
  • 浏览: 145508 次
  • 来自: ...
社区版块
存档分类
最新评论

spring学习日记(2)

阅读更多
二.控制反转(IoC)

针对接口编程,而不是实现:

IoC设计模式,重点关注组件的依赖性,配置以及生命周期.IoC将创建对象实力的任务交给IoC容器或者框架.使得应用代码只需要直接使用实力.

BeanFactory:是轻量级的,处于Spring 框架的核心.可用于Applet和单独的Swing开发.在创建BeanFactory实力的时候,实际上是完成了JavaBean的实力化的创建,配置,以及管理.即BeanFactory在访问和操作IoC容器初期充当了IoC容器的作用.

基于ClassPath找到资源文件:
Rsource resource = new ClassPathResource("appcontext.xml";
BeanFactory factory = new XmlBeanFactory(resource);
HelloWorld hw = (HelloWorld )factory.getBean("fileHelloWorld";

基于文件找到资源文件 :
try{
InputStream ins = new FileInputStream("src/appcontext.xml";
BeanFactory factory = new XmlBeanFactory(ins);
HelloWorld hw = (HelloWorld)factory.getBean("fileHelloWorld";
}catch(FileNotFoundException ex){
log.error("sssssss";
}

基于ApplicationContext实现类找到资源文件:
ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[]{"appcontext.xml"});
BeanFactory factory = (BeanFactory)appContext;
HelloWorld hw = (HelloWorld )factory.getBean("fileHelloWorld";

2.bean的生命周期:

定义JavaBean:借助于构件器创建JavaBean实例.

<bean name = "fileHelloWorld" class = "com.openv.spring.HelloWorld">这样 HelloWorld 实例将使用无参构造函数创建出来.

由于遗留代码问题,需要借助工厂方法创建JavaBean实例.
<bean name = "fileHelloWorld"
class = "com.openv.spring.HelloWorld"
factory-method = "createHelloWorldInstance">
此时HelloWorld 必须提供createHelloWorldInstance静态方法。

如果类没有提供静态方法:
<bean name="helloworldfactory"
class = "com.openv.spring.HelloWorldFactory"/>

<bean name = "fileHelloWorld"
factory-bean = "helloworldfactory"
factory-method = "createHelloWorldInstance">

初始化JavaBean:
1.检查是否使用了autowire
2.检查是否使用了dependency-check
3.借助与setter法官法,把JavaBean的属性注入进来.
4.Spring提供了若干接口,使开发者改变配置BeanFactory初始化JavaBean时的行为和使用,例如IniializingBean接口.BeanFactory初始化JavaBean时会调用那些实现了该接口的JavaBean中包含了的void afterPropertiesSet() throws Exception
5.调用init-method属性.

使用JavaBean:

销毁JavaBean: 一旦Spring停止,.Spring框架会调用JavaBean中的生命周期方法,比如是了DisposableBean接口的JavaBean ,或者那些在Spring配置文件中指定了destroy-method属性的JavaBean.
注意:这些内容只适合于singleton方式创建的JavaBean.

抽象Bean和子Bean定义:<后面介绍>

PropertyPlaceholderConfigurer和PropertyOverrideConfigurer:能够在Spring配置文件外部配置其他应用需要使用的属性.

BeanFactoryAware和BeanNameAware:对于某些基于Spring的应用而言,有一种需求,即将应用的BeanFactory事例注入到JavaBean中,比如,为在某JavaBean事例中动态获得BeanFactory创建的某个单例JavaBean.但是该单例JavaBean没有显示的使用它.此时要借助于BeanFactoryAware.

<bean id = "dataSource"
class = "org.springframework.jnid.JndiObjectFactoryBean">
<property name = "jnidName">
<value>java:/MySqlDS</value>
</property>
</bean>

<bean id = ""example
class = "ss.ss.s..s..s.Example">
<property name = "userinfo">
<ref local = "userinfoDAO">
</property>
</bean>

如果example中需要使用dataSource.但是在Spring配置文件没有显示的配置,那么Example需要实现BeanFactoryAware接口.如果需要在JavaBean 中获得配置的名字,考虑实现BeanNameAware接口.

ApplicationContext:
开发者不需要提供手工创建ApplicationContext实力.变可以通过声明的方式使用.
org.springframework.web.context.ContextLoaderServlet
或者
org.springframework.web.context.ContextLoaderListener
能够在Web应用启动时自动实力化ApplicationContext对象.

开发需要注意的是Log4jConfigListener类:供配置Spring应用的日志使用:
<context - param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>

<Listener>
<listener - calss>
org.springframework.web.util.log4jConfigListener
</listener-class>
</Listener>

web应用中创建ApplicationContext:
<context - param>
<param-name>contextConfigLaction</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
...............................
<Listener>
<listener - calss>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</Listener>

............. <以上适合于Servlet2.3>

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
分享到:
评论

相关推荐

    用ssm(spring+springmvc+mybatis)开发的的一个简单的个人日记系统(本人的javaee的课程设计)

    2. **Spring MVC**:Spring MVC是Spring框架的一部分,专门用于构建Web应用程序。它遵循模型-视图-控制器(Model-View-Controller, MVC)设计模式,将业务逻辑、数据和用户界面分离。在日记系统中,Spring MVC负责...

    springboot学习日记(一-六)

    SpringBoot学习日记(一-六)是一系列关于Spring Boot技术的深入探讨,涵盖了从基础到进阶的应用。Spring Boot是Spring框架的一个简化版,旨在简化Java应用的初始搭建以及开发过程,它内置了Tomcat服务器并默认配置了...

    java进阶学习日记

    【Java进阶学习日记】是一份全面且深入的Java学习资料,旨在帮助已经掌握基础的开发者进一步提升技能,同时也适合正在寻找工作的Java学习者作为面试准备。这份学习笔记涵盖了广泛的Java相关主题,从底层的计算机操作...

    JavaSpringBoot个人日记本系统

    2. **SpringBoot框架**:SpringBoot简化了Spring配置,通过自动配置和起步依赖,使得开发者能够快速创建一个可运行的应用。它集成了Spring MVC、Spring Data JPA、Spring Security等,用于构建Web应用、数据访问和...

    学习ssh框架日记

    SSH框架,即Struts2、Spring和Hibernate的组合,是Java企业级开发中的常用技术栈。下面将分别对这三个框架的核心机制进行详细介绍。 **Struts2机制** 1. **核心控制器 FilterDispatcher**:Struts2的基础,负责...

    社交网站后端项目开发日记(一)(csdn)————程序.pdf

    项目代码已经发布到GitHub,供大家参考和学习。 二、技术栈选型 项目选择了Java 1.8作为开发语言,Maven 3.8.1作为依赖管理工具,SpringBoot 2.5.1作为基础框架,Tomcat作为应用服务器。同时,项目还使用了MyBatis...

    个人网上日记本

    总的来说,个人网上日记本项目涵盖了Web开发中的多个核心知识点,包括MVC架构、数据库操作、前端交互和文件处理等,对于学习和理解Web开发流程具有很高的参考价值。无论是初学者还是有一定经验的开发者,都能从中...

    计算机实习日记15篇

    这篇日记记录了作者在计算机实习的经历,涵盖了jsp开发、Tomcat服务器、SQL Server2000数据库、Struts、Spring、Hibernate框架等多个知识点。 关于JSP开发 JSP(Java Server Pages)是一种基于Java的服务器端脚本...

    【日记】初中生新年英语日记五篇.doc

    在学习英语的过程中,写日记是一个非常有效的练习方式,尤其在新年这个特殊时刻,通过英语日记可以记录下个人的感受、家乡的变化以及新年的快乐气氛。以下是两篇初中生新年英语日记的示例,我们可以从中学习到一些...

    Day10实习日记1

    在Java实训中,我们可以学习到 viele 实践经验,掌握Java编程语言和Spring MVC框架的使用技术。 * 在Java实训中,我们需要掌握基本的Java编程技术,了解Spring MVC框架的基本概念和实践操作,掌握使用Spring MVC框架...

    spring boot 入门项目

    2. **自动配置(Auto Configuration)**:Spring Boot 根据类路径中的 jar 包和配置文件自动进行配置,极大地减少了手动编写配置的工作量。 3. **内嵌服务器(Embedded Server)**:Spring Boot 可以内嵌Tomcat、...

    Java 程序 日记本

    Java程序日记本是一个用于记录和学习Java编程过程中遇到的问题、解决方案以及心得的资源集合。它可能包含了一系列关于Java编程的笔记、代码示例、调试技巧和项目实践等内容,旨在帮助开发者提升技能,解决实际问题。...

    基于java的个人日记本系统毕业设计(源代码+数据库+部署视频).zip

    这是一个基于Java技术实现的...总的来说,这个基于Java的个人日记本系统毕业设计项目是一个全面的学习资源,涵盖了从编程语言到数据库设计,再到Web应用开发和部署的多个重要方面,对于提升学生的综合技能非常有帮助。

    实习日记34篇(我的实习日记)

    这篇实习日记记录了作者在实习期间的所见所闻,包括了对 Java 编程的学习和实践经验。以下是从这篇日记中提炼出来的知识点: 1. 实习第一天的感受:作者在实习的第一天感受到了一些不适应,主要是因为从学校的作息...

    网页制作实习日记.pdf

    2. **Java编程和开源框架**:作者提到了Struts、Spring和Hibernate这三个Java开源框架,它们分别是MVC(模型-视图-控制器)架构、依赖注入和对象关系映射的解决方案。这些框架简化了企业级Web应用的开发,但理解和...

    基于SSM实现的日记管理系统.rar

    2. **Spring MVC**:Spring MVC是Spring框架的一部分,负责处理HTTP请求和响应。它将用户的请求转发给控制器,控制器调用业务逻辑处理后,返回视图名,最后由视图解析并展示结果。在日记管理系统中,Spring MVC可以...

    SSH日记程序整合

    2. **Struts集成**:在Struts的Action类中,我们可以注入Spring管理的日志组件,然后在执行业务逻辑时记录相关信息。此外,需要在Struts的配置文件中定义Action映射,以便处理日记相关的HTTP请求。 3. **Hibernate...

    spring2.5+struts2+hibernate3.2=ssh项目框架源码

    这个项目的源码提供了使用Spring 2.5、Struts 2和Hibernate 3.2构建应用程序的实例,这对于学习和理解SSH框架的整合及实际应用有着重要的参考价值。 Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和...

    spring案例.zip|spring案例.zip

    Spring框架是中国著名的Java企业级应用...通过学习和实践这些案例,你可以更好地理解Spring如何帮助构建健壮的、可维护的企业级Java应用。在实际项目中,结合个人博客的讲解,可以加深对Spring的理解,提升开发技能。

    个人知识管理系统 Struts2.0 + Spring + Hibernate

    Struts2.0 + Spring + Hibernate + DWR 对于三大框架目前还在学习阶段,做得不好的地方欢迎来mail指正yukiceo@126.com,或http://blog.csdn.net/yukiceo 每天面对大量的知识,时间一长,容易造成某些知识点的生疏...

Global site tag (gtag.js) - Google Analytics