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

Spring核心

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

Spring核心

这里
  • Spring的开始
    • Spring的核心:
  • Spring的IOC
    • bean管理
      • IOC注入属性:
      • Bean的类型
      • bean的作用域
      • bean的生命周期
      • 引入外部属性文件连接数据库
      • 基于注解方式进行对bean的管理
        • Spring针对Bean管理中创建对象提供的注解
      • 基于注解方式实现属性注入
      • 完全注解开发

Spring的开始

Spring的核心:
  • IOC(工厂模式和反射):是由DI来具体实现的,对象的创建由原来的自己new创建,改为由SpringIOC容器来进行创建和控制。主要是为了使耦合度降低。
  • AOP(代理模式):AOP不修改源代码进行修改,减少了代码的耦合性

spring所需要的核心jar包

user类:

public class User {
  public void ba(){
      System.out.println("babadawo");
  }
}

测试类:

public class test1 {
    public static void main(String[] args) {
    //获取配置文件
        ApplicationContext context=
                new ClassPathXmlApplicationContext("bean1.xml");
    //获取配置创建对象
        User user=context.getBean("user", User.class);

        System.out.println(user);

        user.ba();
    }
}

bean1:



    
        
    

Spring的IOC
  • IOC容器就是对象工厂
  • Spring提供IOC的两种实现方式:BeanFactory(懒加载)和ApplicationFactory(立即加载)

懒加载和立即加载:

  • 加载配置的时候不会去创建对象,在使用时候再去创建
  • 加载配置的时候就会将对象进行创建
bean管理
  1. Spring创建对象
  2. Spring注入属性

管理bean有两种方式:一种是xml、另一种是注解。

  • xml方式:
    创建对象:
    1. 使用bean标签,标签里面添加对应的属性(id、class、scope),就可以实现对象的创建
    2. 创建对象时,默认走的是无参构方法来完成对象的创建
 
IOC注入属性:
  • DI:依赖注入(DI是IOC的一种具体实现)
    主要有两种方式:set注入和有参构造注入
    还有两个特殊的一个是p注入(基于set),另一个是c注入(基于构造器)
            
                  
           

        
  
        
            
            
            
           
            
            
            
        
            
            
        
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
        
        
Bean的类型

Spring有两种类型的bean,一种是普通的bean,另一种是工厂bean

  • 普通bean:在配置文件中定义bean的类型就是返回类型
  • 工厂bean:在配置文件中定义bean的类型和返回类型可以不一样(需要实现FactoryBean(重写getObject方法,进行写入需要对象的属性)并对其进行泛型成其他的对象,在进行创建对象时,创建的也是需要的对象的类)
bean的作用域

在Spring里面,设置创建bean实例是单实例还是多实例,默认情况下,bean是一个单实例对象

  • 单例模式:单实例 singleton 加载时就创建
  • 原型模式:多实例 prototype 获取调用时才会创建

除了前两个还有request和session

bean的生命周期 引入外部属性文件连接数据库
  1. 创建外部属性文件,.properties文件,写数据库信息
  2. 把外部的 .properties属性文件引入到Spring配置中(引入context名称空间)

jdbc.properties:

prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/shijian
prop.userName=root
prop.password=root

bean:






    
    

        
        
        
        

    


基于注解方式进行对bean的管理

注解是代码的特殊标记,作用于类或者方法、属性上面,为了简化xml配置

Spring针对Bean管理中创建对象提供的注解
  • @Component:是一种组件
  • @Service
  • @Controller
  • @repository :一般作用于dao层
  1. 导入依赖
  2. 开启组件扫描
    component-scan可以进行定制化(设置哪些需要进行扫描,哪些不进行扫描)
 
  1. 创建类,并在类上添加注解
    value如果不写,默认值就是(value=“userService”)
@Component(value="userService")  
//<==> 
public class UserService{

}
基于注解方式实现属性注入
@Autowired根据属性类型自动注入
@Qualifier根据属性名称自动注入
@Resource可以根据属性类型自动注入也可以根据属性名称自动注入
@Value诸如普通类型属性

@Autowired的使用

  1. 把service和dao对象创建,并添加对象注解
  2. 在service注入dao的对象,在service添加dao的类型属性,在属性上使用注解(不需要set方法)

@qualifier的使用要和@Autowired一起使用来进行根据名字进行限定

@Resource是Java的注解,可以根据属性类型自动注入也可以根据属性名称自动注入

@Value

@Value(value ="baba")
private String name;//将baba注入进name里面
完全注解开发
 

可以在配置类中进行替换xml配置文件

@Configuration
@ComponentScan(basePackages="com.ruigr")
public class SpringConfig{
    
} 

@ComponentScan(basePackages=“com.ruigr”) <==>

进行使用时因为没有xml所以需要载入配置类(xml类和配置文件的作用是一致的)

        ApplicationContext context=
                new ClassPathXmlApplicationContext("bean1.xml");

//替换成

       ApplicationContext context=
              new AnnotationConfigApplicationContext(SpringConfig.class); 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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