Spring学习之路(一)spring入门

1、引入jar包

  spring核心jar包
    spring-beans-4.3.2.RELEASE.jar
    spring-core-4.3.2.RELEASE.jar
    spring-context-4.3.2.RELEASE.jar
    spring-expression-4.3.2.RELEASE.jar
  spring日志jar包
    log4j-1.2.17.jar
    commons-logging-1.1.3.jar
  spring注解jar包
    spring-aop-4.3.2.RELEASE.jar
  spring AOP操作
    aopalliance-1.0.jar
    aspectjweaver-1.8.7.jar
    spring-aop-4.3.2.RELEASE.jar
    spring-aspects-4.3.2.RELEASE.jar
  日志文件
    log4j.properties -》放在src下
  spring对数据库操作
    spring-tx-4.3.2.RELEASE.jar
    spring-jdbc-4.3.2.RELEASE.jar
  c3p0连接池
    c3p0-0.9.2.1.jar
    mchange-commons-java-0.2.3.4.jar

2、创建类,在类中写方法

public class User {
    public void add(){
        System.out.println("add----------");
    }
//    public static void main(String[] args) {
//        //原始做法
//        User user = new User();
//        user.add();
//    }
}

3、配置spring文件,配置类文件

<?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">
<!-- ioc入门 -->
    <!-- bean标签
            ID属性:自定义的值;在获取创建对象的值的时候需要
            class:类的路径 -->
    <bean id="user" class="com.ioc.User"></bean>
</beans>

4、写代码调试测试对象创建

package com.junit;

import static org.junit.Assert.*;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ioc.User;

public class Text {

    @Test
    public void test() {
        //加载 spring 配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//        得到配置对象创建的对象 user为 spring配置文件中bean标签ID属性的值
        User user = (User) context.getBean("user");
//        获取到  User 类;执行其中的add方法
        user.add();
    }

}

bean实例化的三种方式

  1、使用类的无参构造方法创建(重点) ——》 上面案例;

  2、使用静态工厂创建

package com.ioc;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

//类
public class bean2 {
    public void add() {
        System.out.println("add--------------");
    }
}

//静态工厂
public class Factory {
//    使用静态的方法返回bean对象
    public static bean2 getBean2(){
        return new bean2();
    }
}

// 测试
@Test
public void test() {
    //加载 spring 配置文件
    ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//    得到配置对象创建的对象
    bean2 bean2 = (bean2) context.getBean("bean2");
    System.out.println(bean2);
}

<?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">
<!-- ioc入门 -->
    <!-- bean标签
            ID属性:自定义的值;在获取创建对象的值的时候需要
            class:类的路径 -->
    <bean id="user" class="com.ioc.User"></bean>
    <!-- destroy-method:指向的是 factory中的静态方法名 -->
    <bean id="bean2" class="com.factory.Factory" factory-method="getBean2"></bean>
</beans>

配置文件

  3、使用实例工厂创建

package com.ioc;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

//类
public class bean2 {
    public void add() {
        System.out.println("add--------------");
    }
}

//实例工厂类
public class Factory {
//    普通方法
    public bean2 getBean2(){
        return new bean2();
    }
}

/**  配置文件
     <!-- 实例工厂 -->
    <bean id="bean2Factory" class="com.factory.Factory" ></bean>
    <bean id="bean2" factory-bean="bean2Factory" factory-method="getBean2"></bean>
 */

//测试
@Test
public void test() {
    //加载 spring 配置文件
    ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//    得到配置对象创建的对象
    bean2 bean2 = (bean2) context.getBean("bean2");
    System.out.println(bean2);
}
时间: 2024-10-12 22:05:21

Spring学习之路(一)spring入门的相关文章

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

Spring学习笔记一(Spring核心思想)

通过学习<Spring in action (Third edition)>的第一章,我大概了解了Spring的基本思想: 1,依赖注入(Dependnecy Injection): 在不使用Spring框架的情况下,一个类要跟另一个类建立联系,可能会使用如下的模式: class A{...} class B{ private A a; ...       } 这样的话,每次实例化一个B的对象,如b1,必定实例化一个A的对象,如a1,并且b1和a1是紧耦合的,b1牢牢地和a1绑定在一起了.他们

Spring学习之路三——第一个Spring程序(体会IoC)

体会IoC:Spring通过一种称作控制反转(IoC)的技术促进了松耦合.当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象.你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它. 步骤如下: 1.建立web功能 2.导入jar包 3.配置applicationContext.xml 4.创建类 5.测试 具体代码如下 UserDao.java 1 package cn.itcast

Spring学习之路

1.Spring是什么? 刚接触Java的时候,很疑惑为什么大家都在讲Spring,仿佛java就是Spring,那Spring到底是什么呢?其实他就是一个容器框架,你可以把它当作一个工具箱,它可以帮你快速的进行java开发. 2.Spring怎么用? Spring使用起来特别简单,下载好jar包,导入工程,编写相应的配置文件,就可以使用了.具体的教程,百度一搜一大把,我就不重复写了.这里我讲一下三种Spring应用上下文加载的方式: ①ClassPathXmlApplicationContex

Spring 学习之路(三)

前言:对于使用Spring框架的开发人员来说,我们主要做的主要有两件事情:①开发Bean;②配置Bean;而Spring帮我们做的就是根据配置文件来创建Bean实例,并调用Bean实例的方法来完成“依赖注入”,可以把Spring容器理解成一个大型工厂,Bean就是该工厂的产品,工厂(Spirng容器)里能生产出来什么样的产品(Bean),完全取决于我们在配置文件中的配置.我们那么今天我们就来说说关于Bean的故事... 容器中Bean的作用域 singleton 在整个Spring IoC 容器

spring学习二:根据spring原理自己写个spring

请先看我另一篇文章:"Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式"中大概知道他的简单用法 那我自己想写一个简单sping,注解的方式以后再写 方式:1.解析xml配置 2.使用java的反射机制生产动态代理对象 3.扫描类上的注解,再用反射(没写) 代码如下(简单实现,重原理轻代码,不喜勿喷) xml配置我就直接用我上一篇spring-test的配置了,代码也用上一篇的,但解析的时候是用自己写的,没有用调用任何spring API代码 <?x

Spring学习系列笔记之Spring心得

1 解释一下Dependency injection(DI依赖注入)和IOC(Inversion of control,控制反转)? 答:1.1:Dependency injection(DI依赖注入): 就是说将一个目标与目标对象之间的依赖通过Spring容器来实现注入,这样使得与传统的通过自己写代码来创建对象的方式完全颠倒过来了,这就是控制反转的由来吧. 我觉得用口头举例子来说明DI更方便,更清晰.通过DI机制,降低了替换业务对象的复杂性. 依赖注入主要有两种方式来实现: a:设值注入.  

Spring学习(八)spring整合struts2

一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成ioc容器中的bean 延伸:spring对持久层框架/技术的整合原理 (封装) : 提供模板类封装对应技术/框架的开发流程 通过对模板类的使用,实现对传统开发流程的"代替". 二.整合方式: 插件方式 struts2为了实现对spring框架整合,也提供了一个插件的配置文件struts-plugin.xml struts2-spr

Spring学习(2)Spring 常用注解

Spring 常用注解 使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scanbase-package="pagkage1[,pagkage2,-,pagkageN]"/>. 如:在base-package指明一个包 1 <context:component-scan base-package="cn.gacl.java"/> 表

spring学习(一)spring简介

Spring简介: Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程). 什么是框架: 框架:是能完成一定功能的半成品. 框架能够帮助我们完成的是:项目的整体框架.一些基础功能.规定了类和对象如何创建,如何协作等,当我们开发一个项目时,框架帮助我们完成了一部分功能,我们自己再完成一部分,那这个项目就完成了