`
wjheye
  • 浏览: 83745 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Spring完全学习文档

阅读更多
IOC和AOP
1.搭建spring:(1)添加jar包(2)设置配置文件(3)
2.获取配置文件:
  AplicationContext apct=new ClassPathXmlApplicationContext("bean.xml");
  service=apct.getBean("获取一个bean");

IOC配置和应用
一,xml配置
1.注入方式
  (1)setter   @Resource
  (2)构造方法注入
  (3)结构注入
  Xml:<bean id="需要注入的名称(name)" class="">
     </bean>
     <bean id="" class="">
         <property name="名称" ref="引用名称"/>
         <constructor-arg>//构造方法的注入
             <ref bean="引用注入的名称(name)"/>
         </constructor-arg>
     </bean>
2.bean的scope:singleton(单例,一直都是一个对象),prototype(每声明一次将获取不同的对象),request,session,global session
3.集合注入:
  参考相关文档//set,list,map 的注入
  <property name="set">
     <set>
       <value></value>
       <value></value>
      </set>
  </property>
4.简单属性注入:<property name="属性名" value="值"/> 
5.自动装配:
  (1)在<bean标签上 autowire="(byName,byType....)"  默认按byName(按名字装配) byType(按类型来装配,如果同一类型有两个时将报错)
  (2)在beans标签上 default-autowire="byName"  指定全局的默认装配方式
6.生命周期
  <bean  lizy-init="true"  表示在用到时才会初始化该bean,而在启动服务器时并不进行初始化()
  <bean init-method="初始化加载的方法" destroy-method="结束的方法"

二,Annotation配置
1.修改bean.xml配置文件加入xmlns命名空间和<context:annotation-config/>
2.自动装配: 在相应的属性上注解 @Autowired  @Qualifier(name="指定bean.xml中的bean的id")
  example:
(1) @Autowried
  public void setName(@Qualifier("name")String name){
  }
  @Required  //表示必须要写的方法,在初始化时将检查该项
  (2) @Resource(name="注入名") //重要
      在配置文件中设置:
      <context:component-scan base-package="指定需要查询的包"/> //使用该项将自动在包下面去查找
      在需要注入的类中注解:@Component(value="注入名")
      (还存在其他的注解:@Repostory,@Service,@Cntroller)
3.生命周期
  @Scope("prototype/singleton")  //生存范围
  构造完成之后:@PostConstruct  相当于xml中的init-method,指加载该类时执行的方法
  @PreDestroy 容器销毁之前执行的方法,相当于xml中的destroy-method.


面向切面编程(AOP)
一,Annotation配置AOP
1.添加日志逻辑

2.添加xmlns命名空间,在添加配置<aop:aspectj-autoproxy/>  //使用aspectj注解
  (aspectj是一个专门用来产生代理(面向AOP)的框架)
 
  在切面类上配置注解 @Aspect @Component, 在方法上配置 @Before(植入点语法)
  植入点语法:
  例子:execution(public void cn.bywei.dao.impl.UserDaoImpl.save(cn.bywei.model.User))
       execution(* cn.bywei.dao.impl.*.*(*))
  JoinPoint  连接点
  PointCut  
  Aspect   切面
  Advice   切面上的逻辑(@before,@after),加在切入点上的建议
  Target  被代理的对象,把我们的逻辑植入的对象
  Weave   植入
   (1)@Pointcut("execution(* cn.bywei.dao.impl.*.*(*))")
      public void myMethod(){};
      @Before("myMethod()")
   (2)@After    //
   (3)@AfterThrowing  //当抛异常时
   (4)@Around("myMethod()")
      public void around(ProceedingJoinPoint pjp){
        pjp.proceed();
      }
二,xml配置AOP



数据源配置
1.dpcp 
  (1)直接在文件中配置数据库连接信息dbcp.BasicDataSource
  (2)配置一个
      <bean class="***.PropertyPlaceholderConfigurer">//通过占位符配置
        <property name="locations">
              <value>classpath:jdbc.properties</value>
       </property>
      </bean>
   dataSource中通过占位符来配置读取 jdbc.properties文件中的信息.
2.c3p0
3.proxool


Spring和Hibernate整合
1.建立SessionFactory
  在 LocalSessionFactoryBean中不支持Annotation
  而 可以使用 AnnotationSessionFactoryBean 来支持Annotation
  <property name="dataSource" ref="dataSource"/> //注入属性
 
  //配置需要注解的实体类
  (1)<property name="annotatedClasses">
       <list>
         <value>cn.bywei.model.User</value>
       </list>
   </property>

  (2)自动扫描包下面的实体类
    <property name="packageToScan">
       <list>
         <value>cn.bywei.model</value>
       </list>
    </property>
 
  //指定Hibernate的配置信息
  <property name="hibernateProperties">
     <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        <prop key="hibernate.show_sql">true</prop>
     </props
  </property>
2.aop主要使用在声明式事务管理
  Annotation:
  (1)在xml配置文件中添加命名空间
     添加事务管理 <tx:annotation-driven transaction-manager="txManager"/>
     添加<bean id="txManager" class="*****.HibernateTransactionManager">
                 <property name="sessionFactory" ref="sessionFactory"/>
         </bean>
     在一个方法上加事务:@Transactional
   Xml:
  

3.HibernateTemplate
  <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
     <property name="sessionFactory" ref="sessionFactory"/>
  </bean>
  使用:
   hibernateTemplate.save(User);
   hibernateTemplate封装了一系列的方法.
   callback() --回调
4.
  @Component
  public class SuerDao extends HibernateDaoSupport {
     @Resource("sessionFactory")
     public void setSuperSessionFactory(SessionFactory sessionFactory){
       super.setSessionFactory(sessionFactory);
     }
  }
  this.getHibernateTemplate().save(实体类);

5.初始化bean
  配置
  <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  引入配置文件:
   <contenxt-param>
      <param-name>contextconfig</param-name>
      <param-value>claspah:beans.xml</param-value>
  </context-param>
6.使用load时,配置把session打开到视图层
  <filter>
     <filter-name>openSessionInView</filter-name>
     <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInView</filter-class>
  </filter>
  <filter-mapping>**************
********</filter-mapping>

7.中文问题
  <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter>
        <init-param>
              <param-name>encoding</param-name>
              <param-value>GBK</param-value>
        </init-param>
  </filter>
  <filter-mapping>**************
********</filter-mapping>

分享到:
评论

相关推荐

    springmvc中文学习文档

    这份文档作为复习资料,可能没有详细到适合完全初学者的程度,但对于有基础的开发者来说,它是回顾和提升Spring MVC技能的好帮手。建议初学者配合视频教程或更详尽的指南来学习,以便更好地理解每个概念并进行实践...

    Spring4中文文档4.2.1_有目录_pdf文字选择_书籍pdf

    7. **Java配置**:Spring4.2.1进一步强化了Java配置,使得开发者可以完全摆脱XML配置,使用纯Java类进行配置。 8. **类型安全的转换服务(Conversion Service)**:Spring4.2.1提供了更强大的类型转换系统,确保了...

    Spring4.3文档,chm格式

    6. **Java配置**:Spring 4.3进一步推广了Java配置,使得开发者可以完全避免XML配置,提高代码的可读性和可维护性。 7. **反应式编程支持**:虽然Spring 4.3尚未引入完整的反应式编程支持,但它是Spring 5中引入...

    传智播客 Spring 完全文档 笔记总结

    ### 传智播客 Spring 完全文档 笔记总结 #### 一、Spring入门 ##### 1.1 Spring简介 - **定义**:Spring 是一个开源的控制反转(Inversion of Control, IoC)和面向切面(Aspect Oriented Programming, AOP)的...

    spring3.0帮助文档

    Spring 3.0 完全基于Java 5进行构建,这意味着它充分利用了Java 5及更高版本的语言特性,如泛型、枚举、可变参数等,这为开发者提供了更为简洁的编程模型。 ##### 2.2 文档改进 随着Spring 3.0的到来,官方提供了...

    spring2.0学习源码

    spring学习资料集合,源码+文档 注释详细 完全超值。 jdk代理,springAOP,IOC,注入全部 分工程详细介绍,这是我个人总结的想了好久决定拿出来跟大家分享,希望更多的人能够掌握它,谢谢

    spring-framework 中文文档.pdf

    - **基于Java的配置**:完全使用Java代码来配置Spring容器,提高了灵活性和类型安全性。 #### 实例化一个容器 根据不同的需求,可以通过不同的方式来实例化Spring IoC容器。例如,如果使用XML配置文件,可以通过`...

    spring2.0学习笔记+spring定时任务

    标题中的“spring2.0学习笔记+spring定时任务”表明了这个压缩包文件包含的是关于Spring框架2.0版本的学习资料,特别是关于Spring的定时任务功能。Spring是Java开发中最广泛应用的轻量级框架之一,它提供了一整套...

    java学习阶段所有的API帮助文档

    有java api中英文版,Ajax_XMLHttpRequest帮助文档,Apache+Ant+1.7,Comm2.0_参考手册,DHTML_网页制作完全手册_中文,DHTML文档对象模型中文手册,DOS_练就高手,Hibernate3.1.2_帮助文档_中文,Hibernate3.2_帮助...

    spring-framework-reference:Spring 框架参考文档翻译(韩文)

    由于这是一个仅用于学习目的的项目,因此可能无法完全翻译。 Hangul Spring Framework 参考文档 4.1.6.RELEASE (当前) Hangul Spring Framework 参考文档 4.1.5.RELEASE (工作到 ~overview.html 后暂停) 参考...

    Spring Security 文档

    总的来说,Spring Security 3提供了多种适应不同需求的安全解决方案,从简单的配置文件到完全数据库驱动,甚至对源码的深度定制,为企业级应用的安全管理提供了全面的支持。开发者可以根据项目规模、复杂度以及团队...

    java spring boot springboot 后台管理框架源码程序 源代码(内含部署文档及数据库)

    前后端基于json进行交互,接口通过JWT无状态token进行权限校验,使用redis或者数据库进行token缓存,接口完全采用Restful的风格,实现按钮级权限控制,可以作为开发项目的脚手架,做为基础项目。 该版本为mybatis版...

    Spring3.0资源包+中文文档

    这个资源包包含了Spring3.0的核心组件、示例代码以及中文文档,对于学习和理解Spring框架具有极大的帮助。 Spring3.0主要改进了以下几方面: 1. **AOP增强**:在Spring3.0中,面向切面编程(AOP)支持得到了显著...

    基于Spring Boot和Spring Cloud的微服务架构设计源码

    该架构是一个商业级项目升级优化而来,采用Spring Boot 2.7和Spring Cloud 2021等核心技术构建,完全遵循阿里巴巴编码规范。它提供基于React和Vue的两个前端框架,用于快速搭建企业级的SaaS多租户微服务平台。适合...

    尚硅谷最新springcloud高清视频

    3. **关注官方文档**:Spring Cloud 的官方文档非常详尽,及时更新最新的版本信息和技术细节。 4. **参与社区交流**:加入 Spring Cloud 的官方论坛、GitHub 仓库等社区平台,可以获取最新的技术资讯,遇到问题也...

    spring-5.2.9.RELEASE-dist.zip(spring-framework-5.2.9.RELEASE)

    通过深入学习和使用Spring Framework 5.2.9.RELEASE,开发者不仅可以提升个人技能,也能构建出高效、健壮的企业级应用。无论你是初学者还是经验丰富的开发者,这个版本都值得你投入时间和精力去探索。

    spring应用开发完全手册(12-14)

    《Spring应用开发完全手册》是全面深入学习Spring框架的重要资源,涵盖了从基础到高级的多个主题。在这三章中,我们将重点关注三个关键领域:生成Excel文件、实现留言本功能以及文件上传。 第12章“生成Excel文件”...

    史上最全Java开发文档,包括JDK,Spring,JQuery,JS等

    这篇文档集合涵盖了Java开发的核心领域,包括JDK,Spring框架,JQuery库,以及JavaScript语言。这些技术在现代Web开发中扮演着至关重要的角色。让我们逐一深入探讨它们的知识点。 首先,JDK(Java Development Kit...

    spring教程

    本教程旨在深入探讨Spring的核心概念和技术,通过提供的两份教程文档——"Learning Spring Application Development.pdf"和"Mockito for Spring.pdf",我们可以深入了解Spring的精髓。 "Learning Spring ...

Global site tag (gtag.js) - Google Analytics