Spring AOP及SSJ集成

Spring-AOP

1、Spring依赖注入(DI)

     1、构造器注入

              1.索引注入

            

              2.参数名注入

              3.参数类型

           

              4.参数顺序

             

     2、属性注入

              1.普通属性注入

             

              2.list注入

             

             

 

 

3.set注入

             

              4.properties注入

             

              5.数组注入

           

              6.map注入

            

2、XML自动注入(了解)

              1.根据类型

              2.根据名字

              3.根据构造器

3、全自动注入

              1.主要标签

        @Controller(控制层)  
        @Service(业务层)  
        @Reposiotry(持久层)      
        @Component(除三层以外的其他)
        @Autowired
        @Resource

              2.注意点:

这四个标签功能基本一样,主要是为了区分作用,标识
        @Autowired与@Resource 两者的区别:
        前者按byType(类型)---byName(名字)的顺序注入,由Spring提供的注解
        后者则是相反的顺序注入,是Sun公司提供的注解

 

4、AOP

              1.概念

                     面向切面编程,作用是抽取公共的业务逻辑,扩展功能,底层是基于代理模式实现的

              2.配置及执行原理

      

      

5、代理模式了解

              1.静态代理

              2.动态代理

                     1.JDK动态代理

                            JDK动态代理只能代理有接口的类

      如果有n个接口,必然有n个实现,只用写1个代理类JDKProxy就可以对所有有接口进行处理

如果有代理主题角色存在,必须修改调用方才能实现代理

                     2.CGLIB动态代理

                            不管有没有接口,都可以代理

   只用写1个代理类CglibProxy就可以对所有没有接口的不能是final都进行处理

如果有代理主题角色存在,必须修改调用方才能实现代理

SSJ集成及声明式事务管理

1、创建bean的四种方式

     1、通过无参构造函数创建

              直接在xml中配置

      

     2、通过factorybean创建

              通过entitymanagerfactory创建复杂对象

      

      

     3、通过静态方法创建

              在类中创建一个静态方法得到该类的对象,然后调用这个静态方法

      

     4、通过实例对象创建

              可以通过其他类得到想要的类的实例,然后引用这个得到类的方法

      

2、SSJ集成

          1、SSJ了解

                     1、三大框架介绍

                            1、ssh:

                                 struts  spring  hibernate

Struts2 Spring Hibernate

2、ssm(最流行的框架)

SpringMVC Spring MyBatis

3、ssj(Spring springMvc jpa)

Struts2 Spring JPA

SpringMVC Spring JPA

SpringMVC Spring spring Data JPA(spring的全家桶)

          2、SSJ集成的步骤

               1、导入jar包

                           

<dependencies>
  <!--springMvc核心jar包-->
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.2.5.RELEASE</version>
  </dependency>
  <!--spring框架-->
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.5.RELEASE</version>
  </dependency>
  <!--Spring测试-->
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.2.5.RELEASE</version>
  </dependency>
  <!--Spring框架-->
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>4.2.5.RELEASE</version>
  </dependency>
  <!--MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包-->
 
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
  </dependency>
  <!--hibernate核心包-->
 
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.8.Final</version>
  </dependency>
  <!--用hibernate创建entitymanager的包-->
 
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>4.3.8.Final</version>
  </dependency>
  <!--连接池-->
 
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.2.2</version>
  </dependency>
  <!--aop-->
 
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.9</version>
  </dependency>
  <!--JSON转换需要的类-->
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.0</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
</dependencies>

<build>
  <finalName>day42_sjj</finalName>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.6.0</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>

 

               2、配置applicationContext.xml(Spring的核心)

                            配置顺序:

  1. jdbc.properties
  2. DataSource
  3. EntityManagerFactory
  4. dao层
  5. seevice层
  6. 加事务
  7. Controller层

               3、配置applicationContext-MVC.xml (SpringMVC核心配置文件)

                            配置顺序:

  1. 扫描包
  2. 开启Springmvc的注解文件
  3. 静态资源放行
  4. 配置视图解析器

               4、web.xml的配置

                            配置顺序:

  1. 启动springmvc的容器
  2. 启动Spring的容器
  3. 解决post提交乱码问题

               5、jsp

3、easyUI的引用

              easyUI核心文件引入

             

4、事务传播机制

事务:Transactional 属性readOnly=true:只读

propagation = Propagation.SUPPORTS

A去调B,如果B使用的是此机制,A如果没事务,就没有事务,如果A有事务,则B加入此事务
   propagation = Propagation.REQUIRED

A去调B,如果A使用此事务机制,没事务,则创建一个,不管B有没有事务,都加入A
    propagation = Propagation.REQUIRES_NEW

A去调B,如果B使用此事务,不管A有没有事务,B都开一个全新的事务
     propagation = Propagation.NEVER

A去调B,如果B使用此事务,看A是否有事务,有,则报错,没有,则正常运行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值