Spring的认识

Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用

Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架

  • 一站式框架,指的是spring为JavaEE开发的每一层都提供了支持

    • web层:SpringMVC
    • service层:Spring的bean管理、声明式事务管理
    • dao层:jdbc模板、ORM模块

Spring的优点

  • 方便解耦,简化开发 
  • 支持AOP编程
  • 支持声明式事务
  • 便于程序测试,支持junit单元测试
  • 方便集成各种框架
  • 降低JavaEE API的使用难度

Spring的组成结构

Spring的环境搭建

  1. 下载开发包(http://repo.spring.io/release/org/springframework/spring/
  2. 解压Spring的开发包
    1. docs:Spring的开发规范和API

      libs:Spring开发需要的jar和源码

      schema:Spring配置文件的约束

  3. 创建web项目,引入jar
    1. Spring的Core Container中包含beans、core、context、SpEL四个模块,所以Spring项目必须使用的四个jar
      1. spring-beans-4.2.4.RELEASE.jar
      2. spring-context-4.2.4.RELEASE.jar
      3. spring-core-4.2.4.RELEASE.jar
      4. spring-expression-4.2.4.RELEASE.jar  
    2. 基本的项目也需要日志记录,spring日志相关的jar
      1. com.springsource.org.apache.commons.logging-1.1.1.jar
      2. com.springsource.org.apache.log4j-1.2.15.jar  
  4. 创建一个简单的实体类、一个测试类
    1. 实体类

       package com.qf.demo;
      
       public class User {
      
           private Long id;
      private String name;
      private Integer age; public void setId(Long id) {
      this.id = id;
      }
      public void setName(String name) {
      this.name = name;
      }
      public void setAge(Integer age) {
      this.age = age;
      } @Override
      public String toString() {
      return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
      } public User(Long id, String name, Integer age) {
      super();
      this.id = id;
      this.name = name;
      this.age = age;
      }
      public User() {
      super();
      } }
    2. 测试类
      public class TestDemo {
      
      	@Test
      public void test() {
      ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
      User user = (User) context.getBean("user");
      System.out.println(user);
      }
      }
  5. 编写配置文件
    1. 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">
      <bean id="user" class="com.qf.demo.User">
      <property name="id" value="1"/>
      <property name="name" value="qf"/>
      <property name="age" value="18"/>
      </bean> </beans>
    2. log4j.properties
      ### direct log messages to stdout ###
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.Target=System.err
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file mylog.log ###
      log4j.appender.file=org.apache.log4j.FileAppender
      log4j.appender.file.File=c\:mylog.log
      log4j.appender.file.layout=org.apache.log4j.PatternLayout
      log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ###
      # error warn info debug trace
      log4j.rootLogger= info, stdout
  6. 测试类中运行测试
    14:53:19,995  INFO ClassPathXmlApplicationContext:578 - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5dbe6544: startup date [Tue Jan 08 14:53:19 GMT+08:00 2019]; root of context hierarchy
    14:53:20,039 INFO XmlBeanDefinitionReader:317 - Loading XML bean definitions from class path resource [applicationContext.xml]
    User [id=1, name=qf, age=18]

      

一、spring的基本认识的更多相关文章

  1. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  2. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  3. Spring基于AOP的事务管理

                                  Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...

  4. [Spring]IoC容器之进击的注解

    先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...

  5. 学习AOP之透过Spring的Ioc理解Advisor

    花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...

  6. 学习AOP之深入一点Spring Aop

    上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...

  7. 学习AOP之认识一下Spring AOP

    心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...

  8. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  9. Spring之旅(2)

    Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...

  10. Spring之旅

    Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...

随机推荐

  1. OC学习--类和对象的关系

    1. 如何创建对象 面向对象解决问题的时候必须有对象, 那应该如何创建对象? 以建造汽车为例子来解释: >建造汽车需要造车图纸, 图纸上 清楚的描述出 汽车具备的属性和功能(行为) >属性 ...

  2. Codeforces 1208F Bits And Pieces 位运算 + 贪心 + dp

    题意:给你一个序列a, 问a[i] ^ (a[j] & a[k])的最大值,其中i < j < k. 思路:我们考虑对于每个a[i]求出它的最优解.因为是异或运算,所以我们从高位向 ...

  3. 如何改变string中的字符值?

    string本身是不可变的,因此要改变string中字符,需要如下操作: str := “hello world” s := []byte(str) s[] = ‘o’ str = string(s) ...

  4. html5 自制播放器

    代码实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  5. HTML5 arc的例子

    demo.html <!DOCTYPE html> <html lang="zh"> <head> <meta charset=" ...

  6. Flutter第三方選擇器組件

    调用Flutter的第三方时间选择器组件 上面我介绍了系统给我们提供的日期时间选择器,但是有时候系统提供的选择器并不符合我们的要求,这时我们就可以到pub.dev上去寻找符合我们要求的日期选择器. 这 ...

  7. 如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查

    我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java 代码发送的HTTP请求明细的情况.和javascript代码在浏览器里发送请求可以 ...

  8. python之字符串切分

    在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G ...

  9. 02 spring security 自定义用户认证流程

    1. 自定义登录页面 (1)首先在static目录下面创建login.html       注意: springboot项目默认可以访问resources/resources, resources/s ...

  10. Kattis - gcpc (treap模板)

    ne hundred years from now, in 21172117, the International Collegiate Programming Contest (of which t ...