zoukankan      html  css  js  c++  java
  • 初学Spring

    一.认识Spring

    1.Spring的官网:Spring.io

    IOC  控制反转

    AOP 面向切面编程

    OOP 面向对象编程 四大核心 继承 多态 封装 抽象

    OOD 面向对象分析 工程师 架构师

    OOA 面向对象分析

    Spring致力于Java EE应用的各种解决方案,而不是仅仅专注于某一层的方案,Spring贯穿表现层,业务层,持久层

    2.Spring之父简介

         Rod JohnsonSpringFramework创始人, interface21 CEO

     丰富的c/c++背景,丰富的金融行业背景

         1996年开始关注Java服务器端技术

         Servlet2.4JDO2.0专家组成员

         2002年著写《Expoert one-on-oneJ2EE设计与开发》,改变了Java世界

         技术主张:技术以实用为本,音乐学博士

      专家  (砖家)

      教授 (叫兽)

      攻城狮

    3.Spring的运行时间

    二.Spring IOC

    1.理解控制反转

      也被称为依赖注入,是面向对象编程中的一种设计理念,用来降低代码之间的耦合度

    理解一:将组件对象的控制权从代码本身转移到外部容器

    理解二:说的是创建对象实例的控制权从代码控制剥离到IOC容器(Spring容器)控制,实际就是在XML文件控制,侧重于原理

    2.IOC原理

      在业务代码中不使用new关键字来构建业务实例,而是在配置文件中通过XML节点来告知容器如何对内存中构建的对应类型的对象名称做属性名

    三.DI的认知         什么是DI? Dependency Injection  依赖注入

    说的是创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现实现

    也就是在xml节点中为实体类的对象赋值:

    代码如下:

    由于IOC可以不用使用new关键字来实例化对象,这里的id就是实例化对象名,class就是实例化的类,需要实例化的类

      <bean id="service" class="happy.HappyService">
                <property name="info" value="张三"></property>
                <property name="age" value="20"></property>
                </bean>

    这里的name就是实体类中的属性名,value就是给其赋值

      两者关系:IOC和DI它们是spring核心思想的不同方面(维度)的描述。 (重点)

    四.如何在Idea中开发Spring项目

    第一步:引入Spring所需要的依赖,也就是jar包

    Spring-beans.4.2.0.jar附带了core核心和commons-loggingjar包

    <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
    
            <!--aop使用的jar-->
            <dependency>
                <groupId> org.aspectj</groupId >
                <artifactId> aspectjweaver</artifactId >
                <version> 1.8.7</version >
            </dependency>

    第二步:

    创建实体类HappyService

    第三步:

    在resources目录下创建 applicationContext.xml文件,这里也叫大配置文件,核心文件

    xml文件具体内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    </beans>

    第四步:

    创建测试类

    第一个案例:控制台输出用户信息

    具体实现代码如下:

    1.实体类

    public class HappyService {
    
    /*    public HappyService(){
            System.out.println("第一个Spring程序!");
        }*/
    
        public String info;
    
        public Integer age;
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public void work(){
            System.out.println("work"+info);
        }
    
        public String getInfo() {
            return info;
        }
    
        public void setInfo(String info) {
            this.info = info;
        }
    }

    2.书写xml文件,加入<bean>节点

     <bean id="service" class="happy.HappyService">
                <property name="info" value="张三"></property>
                <property name="age" value="20"></property>
                </bean>

    3.测试类

        //第一个案例
        @Test
    public void Test(){
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
          HappyService service = (HappyService)context.getBean("service");
            System.out.println("我叫"+service.getInfo());
            System.out.println("今年"+service.getAge());
        }

    输出结果:

  • 相关阅读:
    JavaScript 初学者应知的 24 条最佳实践
    利用函数的惰性载入提高 javascript 代码性能
    Android多线程研究(9)——线程锁Lock
    Android多线程研究(8)——Java5中Futrue获取线程返回结果
    MySQL 5.6初始配置调优
    asp.net文件夹上传下载组件
    java文件夹上传下载组件
    web文件上传下载组件
    jsp文件上传下载组件
    flash文件上传下载组件
  • 原文地址:https://www.cnblogs.com/1234AAA/p/8502665.html
Copyright © 2011-2022 走看看