栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在idea中spring的相关配置内容

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在idea中spring的相关配置内容

spring框架:为了简化服务器开发,使现有技术更加容易使用,本身使一个大杂烩。

开源免费的容器、轻量级、非入侵式框架

控制反转IOC  面向切面编程AOP

支持事务初级,对框架整合的支持

SSH:struct2+Spring+Hibernate

SSM:SpirngMvc+Spring+Mybatis

SpringBoot

一个快速开发的脚手架,快速的开发单个微服务

SpringCloud

基于SpringBoot实现的

大多数公司都在使用SpringBoot,学习SpringBoot前提,完全掌握Spring、SpringMvc

配置

 
            junit
            junit
            4.11
            test
        

        
            org.springframework
            spring-beans
            5.3.13
        

        
            org.springframework
            spring-aop
            5.3.13
        

        
            org.springframework
            spring-expression
            5.3.13
        

        
            org.springframework
            spring-jdbc
            5.2.0.RELEASE
        

        
            org.springframework
            spring-core
            5.3.13
        

        
            org.springframework
            spring-tx
            5.3.12
        

        
            org.springframework
            spring-test
            5.0.5.RELEASE
        

        
            org.aspectj
            aspectjweaver
            1.9.5
        

        
            org.springframework
            spring-context
            5.3.13
        

控制反转是一种通过描述(xml或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IOC容器,其实现方法是依赖注入。

id : 是bean的唯一标识符,相当于对象名

class : bean对象所对应的全限定名

name : 就是别名,可以取多个别名

构造器注入,set方式注入,依赖注入

普通值注入 使用value

Bean注入,(其他类)使用ref

//数据类型注入方式   

  


        


        
            
                123546
            
        


        
            
                111111,22222
            
        

        
            
                
                
            
        

    

bean的作用域

scope: singleton 单例模式(spring默认机制)  、 property 原型模式(每次从容器中get都会产生一个新对象) 

自动装配:

byName:根据名称(名称肯定都是唯一)

byType:根据类型(但是必须类型唯一)

//根据名称查找


        

    

注解实现自动装配  

在成员变量上使用Autowired注解

在构造器上使用Autowired注解:

在普通方法上加Autowired注解:方法会在项目启动时,实现一次

可以在构造器的入参上加Autowired注解:





    

@Autowired 注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

按照Autowired默认的装配方式:byType,是无法解决找个多个对象问题(单例模式),这时可以改用按名称装配:byName。

  1. @Autowired
  2.     @Qualifier("user1")
  3.     private User user;
  4. Qualifier意思是合格者,一般跟Autowired配合使用,需要指定一个bean的名称,通过bean名称就能找到需要装配的bean。

当我们使用自动配置的方式装配Bean时,如果这个Bean有多个候选者,假如其中一个候选者具有@Primary注解修饰,该候选者会被选中,作为自动配置的值。

@Resource默认按byName自动注入。
既不指定name属性,也不指定type属性,则自动按byName方式进行查找。如果没有找到符合的bean,则回退为一个原始类型进行进行查找,如果找到就注入。
只是指定了@Resource注解的name,则按name后的名字去bean元素里查找有与之相等的name属性的bean。
只指定@Resource注解的type属性,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常。
 

属性注入

@Value("1111")
public void setName(String name) {
    this.name = name;
}

@Component有几个衍生的注解 在web开发中 将mvc三层架构分层

dao  @Repository

service  @Service

controller   @Controller 

将某个类注解到spring中 装配bean

xml用来管理bean

注解用来注入bean

代理模式  SpringAOP的底层 springaop  springmvc

静态代理: 

抽象角色  :使用接口或者抽象类

public interface Rent {
    public void rent();

}

真实角色 :被代理的角色

//房东
public class Host implements Rent {

    @Override
    public void rent() {
        System.out.println("房东租房.....");
    }
}

代理角色 :代理真实角色

//代理角色也要帮房东租房子
public class Proxy  implements Rent{

    private Host host;



    public Proxy(Host host) {
        this.host = host;
    }

    public Proxy() {
    }

    @Override
    public void rent() {
        seeHouse();
        host.rent();
        fare();
    }

    //看房
    public void seeHouse(){
        System.out.println("中介带看房");
    }

    //收中介费
    public  void fare(){
        System.out.println("中介收费");
    }

}

客户:访问代理对象的人

public class Client {
    public static void main(String[] args) {
        //房东要租房
        Host host = new Host();

        //代理 中介帮房东租房子  代理角色有一些附属操作
        Proxy proxy = new Proxy(host);
        proxy.rent();

    }

}

好处:可以使真实角色的操作更加纯粹,不用关注一些公共业务,公共业务交给代理角色,公共业务发生变化可以集中处理

动态代理:

动态代理代理类是自动生成的

基于接口动态代理   JDK动态代理

基于类的动态代理   cglib代理

Java字节码  javasist

Aop  提供声明式事务 允许用户自定义切面

横切关注点:跨越应用程序多个模块的方法或功能,

切面:横切关注点 被模块化的 特殊对象 是一个类

通知:切面必须要完成的工作 是类中的一个方法

目标:被通知对象

代理:想目标对象应用通知之后创建的对象

切入点:切面通知执行的地点的定义

连接点:与切入点匹配的执行点

使用原生的Spring API 接口

配置AOP


 




     
      
  

自定义类实现aop  

需要开启注解支持

 
       

       

回顾事务:把一组业务当成一个业务

要么都成功  要么都失败

ACID原则

.原子性

.一致性

.隔离性  多个业务可能操作同一个资源 防止数据损坏

.持久性  事务一旦提交,无论系统发生什么问题,结果都不会在被影响,被持久化的写道存储器中

事务管理分为

声明式事务:AOP

编程式事务:在代码中进行事务的配置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/694413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号