• Spring--Spring入门


    Spring的概述-什么是Spring

    • ·Spring 是一个开源框架
    • ·Spring 为简化企业级应用开发而生.使用Spring可以使简单的
    • JavaBean 实现以前只有EJB才能实现的功能
    • ·Spring 是JavaSE/EE的一站式框架
    • ·方便解耦,简化开发
    • -Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
    • ·AOP编程的支持
    • -Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
    • ·声明式事务的支持
    • -只需要通过配置就可以完成对事务的管理,而无需手动编程

    Spring的概述-Spring的优点

    • ·方便程序的测试
    • -Spring对Junit4支持,可以通过注解方便的测试Spring程序
    • ·方便集成各种优秀框架
    • -Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis等)的直接支持
    • ·降低JavaEEAPI的使用难度
    • -Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    Spring的概述-Spring的模块

    Spring的Ioc的底层实现

     Spring的Ioc的入门案例

    • 使用idea创建新的maven项目
    • 在pom.xml中添加依赖
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.7.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.7.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
          <version>4.3.7.RELEASE</version>
      </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
          <version>4.3.7.RELEASE</version>
        </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
    </dependencies>
    • 建包

    UserService

    public interface UserService {
    
        public void sayHello();
    }

      UserServiceImpl

    public class UserServiceImpl implements  UserService{
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        //添加属性
        private String name;
        @Override
        public void sayHello() {
            System.out.print("hello spring" + name);
        }
    }

      SpringDemo1

    public class SpringDemo1 {
        @Test
        /**
         * 传统方式开发
         */
        public void demo1(){
            //UserService userService = new UserServiceImpl();
            UserServiceImpl userService = new UserServiceImpl();
            //设置属性 传统方法要改代码 就不好了
            userService.setName("张三");
            userService.sayHello();
        }
    
        @Test
        /**
         * 使用Spring 的方式
         */
        public void demo2(){
            //创建Spring的工厂
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            //通过工厂获得类
            UserService userService = (UserService) applicationContext.getBean("userService");
    
            userService.sayHello();
        }
    }

       applicationContext.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">
    
        <!-- UserService的创建权交给了Spring-->
        <bean id="userService" class="com.windbag.ioc.demo1.UserServiceImpl">
    
            <!-- 设置属性-->
            <property name="name" value="李四"></property>
        </bean>
    
    </beans>
    • 测试

    Spring IOC的快速入门案例

    • ·IOC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理
    • ·简单说,就是创建UserService对象控制权被反转到了Spring框架
    • ·DI Dependency Injection 依赖注入的概念,就是在Spring创建这个对象的过程中,将这个对象所依赖的属性注入进去。(name)
  • 相关阅读:
    stm32启动代码分析
    STM32固件库详解
    ARM GCC CodeSourcery EABI下载地址
    Linux/redhat 基本网络配置
    侧边栏导航
    div滚动,页面不滚动
    自定义滚动条样式
    placeholder自定义CSS
    浏览器判断
    初始化页面垂直居中
  • 原文地址:https://www.cnblogs.com/windbag7/p/9542300.html
Copyright © 2020-2023  润新知