`

spring入门

阅读更多
xml配置
beans.xml
标签
<bean><bean>

属性:id 为类名,首字母小写 默认为全限定名
      class 指定类
      lazy-init 值:default :
                    true    :延迟初始化
                    false   :
      init-method bean初始化方法
     
      destroy-method  关闭打开资源
-----------------------------------------------------------------
注入
<property name="" ref=""></property>

属性:name 为类名,首字母小写
      ref 指定bean
--------------------------------------------------------------
解耦
dao service 在servicebean中通过get、set方法注入dao
--------------------------------------------------------------
控制反转

配置beans.xml
通过bean注入
   1、给dao添加bean
   2、在personservice bean中添加propertype
   3、使用ref指定bean并注入daobean
使用内部bean注入
   1、在propertype添加bean并指定class

--------------------------------------------------------------
基本类型注入值
  1、在servicebean中添加private 数据类型 变量名;
  2、给属性添加get、set方法
  3、在beans.xml下的bean propertype 指定name=变量名 value=""
--------------------------------------------------------------
注入集合
  Set<数据类型>
       1、在servicebean中添加private Set<数据类型> 变量名=new HashSet<数据类型>();
  2、给属性添加get、set方法
  3、在beans.xml下的bean propertype 指定name=变量名
  4、添加set标签
  5、在set标签下添加value并制定值
  List<数据类型>
       1、在servicebean中添加private List<数据类型> 变量名=new ArrayList<数据类型>();
  2、给属性添加get、set方法
  3、在beans.xml下的bean propertype 指定name=变量名
  4、添加list标签
  5、在list标签下添加value并制定值
private Properties属性类型注入
   1、private 变量名=new Properties();
   2、给属性添加get、set方法
   3、在beans.xml下的bean propertype 指定name=变量名
   4、添加props标签
   5、在props标签下添加<prop key="value"></prop>并制定值

Map<数据类型,数据类型>
    1、在servicebean中添加private Map<String,String> 变量名=new HashMap<String, String>()
    2、给属性添加get、set方法
    3、在beans.xml下的bean propertype 指定name=变量名
    4、添加map标签
     5、在map标签下添加<entry key="key" value="vlaue"/>并制定值
通过构造器注入值
    1、在servicebean中添加private javabean 变量名;String 变量名;
    2、给属性添加get、set方法
    3、在beans.xml下的bean constructor-arg 指定index=0、1;
       0:javabean   指定类型 为javabean ref="bean的id"
       1:String     指定类型 为String   value="value"
------------------------------------------------------------------------------

注解
使用注解方式注入
   @Autowrited  按类型装配
    按名称装配 @Autowired @Qualifier("bean id")
   @Autowired(required="true") 必须注入值
   @Resource 按名称装配、当名称找不到时按类型装配
按名称装配 @Resource(name="bean id")
   使用时在beans.xml 中添加<context:annotation-config/>

  用法:@Autowrited/@Resource 属性;
       @Autowrited/@Resource setter(){}方法;

----------------------------------------------------------------
自动装配
    在bean中添加标签属性
    autowire="类型"
    byType:按类型装配
    byName:按名称装配
       使用时bean id=属性名
    constructor:应用于构造器参数
    autodetect:如果发现是默认构造器、将使用byType方式  
----------------------------------------------------------------
将类交给spring管理
   扫描com包下的类
<context:component-scan base-package="com">
   在class前添加注解
        @Compoent @Scope("作用域")
    标注通用组件
@Service("bean") @Scope("作用域")
    标注业务层组件
     @Controller @Scope("作用域")
            标注控制层组件 (比如struts中的action)
     @Repository @Scope("作用域")
            标注数据访问组件,即DAO组件
  
@PostConstruct 指定初始化的方法
@PreDestroy  指定销毁方法
  

AOP编程

Aspect(切面)、Joinpoint(连接点)、Pointcut(切入点)、Advice(通知)、target(目标对象)、Weave(织入)、Introduction(引入)

权限拦截

aop代理对象:
静态代理

动态代理

Proxy类 创建代理对象

Advice(通知)

advice 前置通知 @Before

afteradvice 后置通知 @AfterReturning

exceptionadvice 例外通知  @AfterThrowing

finallyadvice 最终通知 @After

Aroundadvice 环绕通知 @Around
SPRING AOP开发

添加命名空间

xmlns:aop="http://www.springframework.org/schema/aop
ttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

基于XML配置方式进行AOP开发
   把切面交给sprig管理
   < bean id="拦截器" class=""/>  
<aop:config>
<aop:config>  
  <aop:aspect id="" ref="">
   <aop:pointcut id="切入点" expression="execution(拦截类型 包名2.包名2.bean.*(..))"/>
   <aop:before pointcut-ref="mycut" method="doAccessCheck"/>
   <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/>
   <aop:after-throwing pointcut-ref="mycut" method="doAfterThrowing"/>
   <aop:after pointcut-ref="mycut" method="doAfter"/>
   <aop:around pointcut-ref="mycut" method="doBasicProfiling"/>
   </aop:aspect>
</aop:config>

基于注解方式进行AOP开发

<aop:aspectj-autoproxy/>
Interceptor 拦截器

<bean id="" class=""/>

在拦截器里面的方法前添加相应的注解

Advice(通知)

advice 前置通知 @Before

afteradvice 后置通知 @AfterReturning

exceptionadvice 例外通知  @AfterThrowing

finallyadvice 最终通知 @After

Aroundadvice 环绕通知 @Around


SPRING JDBC 开发

1、配置数据源
使用属性文件jdbc.properties
扫描属性文件
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${driverClassName}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
     <!-- 连接池启动时的初始值 -->
<property name="initialSize" value="${initialSize}"/>
<!-- 连接池的最大值 -->
<property name="maxActive" value="${maxActive}"/>
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="${maxIdle}"/>
<!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="${minIdle}"/>
</bean>
2、基于注解声明事务


   基于XML声明事务

事务传播属性

Required  创建事务
Not_Supported   不创建事务
RequireShew     不管是否存在事务,都会创建一个事务
Mandatory  指定该业务方法只能在已存在的事务中执行
Supports   如果业务方法在摸个事务范围内被调用,则方法成为该事务的一部分
Never           该业务方法没有关联事务时 才能正常执行
Nested          如果一个活动的事务存在,则运行在一个嵌套的事务中,如果没有事务 则按Required属性执行

数据库系统提供的事务隔离

Read Uncommited   :读未提交数据
Read Commited     :读已提交数据
Repeatable Read   :可重复读
Serializable      : 串行化
分享到:
评论

相关推荐

    一本很不错的关于spring入门的书籍

    这本书籍“一本很不错的关于spring入门的书籍”显然是针对初学者设计的,旨在帮助新手快速掌握Spring的基本概念和核心功能。 Spring框架的核心特性包括: 1. **依赖注入(Dependency Injection,简称DI)**:这是...

    spring入门代码项目

    《Spring入门代码项目详解》 在IT行业中,Spring框架无疑是最受欢迎的Java企业级应用开发框架之一。本项目旨在帮助初学者快速入门Spring,通过实际的代码操作来理解和掌握Spring的核心概念与用法。以下是对每个子...

    spring入门经典+源代码

    spring入门经典+源代码.Spring入门经典 一书全面透彻地介绍Spring Framework;Spring Framework是Java开发领域最流行的框架,是事实上的企业级应用开发标准。本书浓墨重彩地描述实际的企业级解决方案,每一章都提供了...

    Spring入门教程.rar

    Spring框架是Java开发中...本教程的文档《Spring入门教程.doc》将深入讲解这些概念,并提供实例代码和步骤说明,帮助你从零开始学习Spring,逐步成长为一名熟练的Spring开发者。请打开文档,开始你的Spring学习之旅吧!

    《Spring入门经典》源代码

    《Spring入门经典》是一本由Mert Caliskan和Kenan Sevindik共同撰写的书籍,主要面向希望深入理解并掌握Spring框架的初学者。Spring是Java领域中最为广泛使用的开源框架,它提供了一个全面的编程和配置模型,旨在...

    spring入门经典源代码

    本资源"Spring入门经典源代码"旨在帮助初学者快速理解并掌握Spring框架的核心概念和使用方法。这本书籍结合了丰富的示例代码,使得理论与实践相结合,使学习过程更加直观和高效。 1. **Spring概述** Spring是一个...

    spring入门介绍PPT.rar

    Spring框架是中国Java开发领域中最广泛使用的轻量级框架之一,它以其依赖注入...这份"spring入门介绍PPT"将是你深入理解Spring的宝贵资源,通过它,你可以逐步掌握Spring的核心理念和技术,开启你的Spring开发之旅。

    spring入门经典-附源代码

    《Spring入门经典》是一本专为初学者和有一定基础的开发者设计的教程,它通过附带的源代码帮助读者深入理解并快速掌握Spring框架。Spring是Java开发领域中最为广泛应用的轻量级框架,它的核心特性包括依赖注入、面向...

    spring入门相关jar包

    spring入门相关jar包,相关jar包为: commons-logging-1.2.jar spring-beans-5.2.6.RELEASE.jar spring-context-5.2.6.RELEASE.jar spring-core-5.2.6.RELEASE.jar spring-expression-5.2.6.RELEASE.jar

    spring入门经典源码第二章

    《Spring入门经典》第二章主要围绕Spring Framework的基础知识展开,旨在为初学者提供一个全面而深入的Spring学习路径。Spring Framework作为Java开发的核心框架,它以其模块化、易用性和强大的功能深受开发者喜爱,...

    Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)

    Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring入门教学(解决方案)Spring...

    《Spring入门经典》书中示例代码

    《Spring入门经典》是一本深度剖析Spring框架的入门书籍,旨在帮助初学者快速掌握Spring的核心概念和使用方法。书中的示例代码是理论知识的实践体现,通过这些代码,读者可以直观地理解Spring如何工作,如何配置,...

    Spring入门级教程.pptx

    Spring入门级教程,从零开始教你认识Spring,了解Spring,理解Spring的两大核心IoC和AOP,教你如何使用Spring进行开发

    Spring入门

    Spring入门,关于Spring的详细解释以及spring的工作原理!

    Spring入门经典

    Spring入门经典 一书全面透彻地介绍Spring Framework;Spring Framework是Java开发领域最流行的框架,是事实上的企业级应用开发标准。本书浓墨重彩地描述实际的企业级解决方案,每一章都提供了通俗易懂的示例和动手...

    Spring入门书籍

    《Spring入门书籍》是一本专为初学者设计的Spring框架学习指南。这本书旨在帮助读者从零开始,逐步掌握Spring框架的基础知识和核心概念,从而在实际项目开发中得心应手。Spring作为Java企业级应用的主流框架,其强大...

    spring 入门基础

    《Spring入门基础详解》 Spring框架作为Java领域中极为重要的轻量级容器,以其强大的功能和易用性深受开发者喜爱。本教程将带你逐步走进Spring的世界,了解其核心概念,并教你如何在Eclipse环境中搭建Spring开发...

    Spring入门案例

    首先,我们来解析一下标题"Spring入门案例"。这表明我们将学习的是Spring的基本概念和基础应用,包括如何搭建Spring项目环境,配置Spring容器,以及如何使用Spring管理Bean。Spring框架的核心是IoC(Inversion of ...

Global site tag (gtag.js) - Google Analytics