Spring入门+运行

Spring介绍

图片说明

  • spring只是作为容器来管理 web service dao层(表示层,业务层,持久层) 且贯穿这三个层,一站式开发,控制反转(IOC)和面向切面(AOP)的容器框架
  • 方便解耦,简化开发:
    • 通过spring提供的Ioc容器,我们可以将对象之间的依赖关系交给由Spring进行控制,避免硬编码所造成的过度程序耦合,
    • 用户不必再为单实例模型类,属性文件解析等这些很低层的需求编写代码,可以更专注于上层的应用。
  • AOP编程的支持:
    • 通过spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付
  • 声明式事务的支持:
    • 在spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明方式灵活地进行事务的管理,提高开发效率和质量
  • 方便程序的测试:
    • 可以用非容器依赖的编程方式进行几乎所有的测试工作,在spring里,测试不再是昂贵的操作,而是随手可做的事情,例如:spring支持Junit4,通过注解方式的测试Spring程序
  • 方便集成各种优秀框架
    • spring不排斥各种优秀框架,spring可以降低各种框架的使用难度,spring提供了对优秀框架等的支持
  • 降低java ee api 的使用难度
    • spring对很多难用的java ee API提供了一个薄薄的封装层,通过spring的简易封装,java ee API使用难度大大降低

spring可以一站式开发为啥还要用mybatis springMVC

  • spring 管理项目中的对象 作为一个容器来使用
  • spring处理dao能力上不比mybatis好
    图片说明

Spring 项目搭建

  • core Container 板块
    • 包 第一步
      图片说明
    • 约束引入 第二步
      图片说明
    • 第三步 引入步骤
      图片说明
    • 第四步 图二显示能够配置说明已成功
      图片说明
    • 配置好的代码
      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance       xmlns="http://www.springframework.org/schema/beans" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
      </beans>

入门案例

  • 在之前开发中,new对象是我们自己做的
  • spring是一个容器,他将帮我们管理对象
  • 通过applicationContext读取spring配置文件
  • 通过getBean()读取配置文件 获得配置好的对象(程序员向spring容器要对象)

user.java代码

package com.spring.bean;
public class user {
    private Integer u_id;
    private String username;
    private String password;
    public Integer getU_id() {
        return u_id;
    }
    public void setU_id(Integer u_id) {
        this.u_id = u_id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

applicationContext.xml

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

Test.java

package com.spring.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.spring.bean.user;
public class test {
    @Test
    public void Test() {
        user u = new user();
        System.out.println(u);
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        user u1 =(user)ac.getBean("User"); //需要强制转换 getBean (bean"name")
        System.out.println(u1);
        user u2 = ac.getBean(user.class);  //不需要强制转换
        System.out.println(u2);
    }
}

Ioc 反转控制 、 依赖注入 DI

  • 控制反转:将我们创建对象的工作交给spring容器帮我们完成
  • 依赖注入:将值通过配置方式为变量初始化/赋值(注入)
    • 注入方式:set方法注入、构造注入、属性注入
    • 注入类型
      • 值类型(value)八大基本数据类型
      • 引用类型String 自定义对象等

反转代码

//IOC反转:创建对象这份工作由我们自己执行反转给spring帮我们执行
//IOC控制:就是由spring帮我们负责创建销毁对象,掌控对象的声明周期等,我们在需要使用对象的时候跟spring申请即可
//IOC是一种编程思想,也是一种新的设计模式,需要依赖注入技术的支持
@Test
    public void Test() {
        user u = new user();
        System.out.println(u);
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        user u1 =(user)ac.getBean("User"); //需要强制转换 getBean (bean"name")
        System.out.println(u1);
        user u2 = ac.getBean(user.class);  //不需要强制转换  从输出可以看u2跟u1是同一个
        System.out.println(u2);
    }

依赖注入的代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans" 
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
    <bean name="User" class="com.spring.bean.user" >
        <property name="u_id" value="2"></property>   <!--这样就可以注入-->
    </bean>
</beans>

test文件跟上面一样
图片说明

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务