Spring是当今最流行的框架,今天开始,dayday同学要正式开始学习Spring了,加油

以下是一个简单的应用Spring框架的java程序

src\dayday\HelloSpring.java

  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class HelloSpring {
    private String name;
    public void setName(String name){
    this.name=name;
    }
    public void println(){
    System.out.println("hello "+name+" ,study Spring hard!!!");
    }
    }

src\dayday\Main.java

  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class Main {
    public static void main(String[] args){
    //获得Spring容器
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    // 获得一个bean,spring中所有的java类都为bean
    HelloSpring hellospring=ctx.getBean("hellospring",HelloSpring.class);
    //调用类中的方法
    hellospring.println();
    // 原来不用spring框架的时候,将得到同样的运行结果
    HelloSpring hellospring=new HelloSpring();
    helloSpring.setName("dayday");
    hellospring.println();
    }
  6.  
  7. }

src\beans.xml

  1. <?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为创建bean(类)的名字
    //name中的值(String)会相应的调用类中setString()的方法,value表示对应属性的值,也可以是ref,ref中是另外一个bean
    <bean id="hellospring" class="dayday.HelloSpring">
    <property name="name" value="dayday"/>
    </bean>
    //另外一种方式,通过p标签进行配置,如果要通过p标签配置的话,bean中不能含有有参构造函数
  1. <!--通过p标签进行配置-->
    <bean name="hellospring" class="dayday.HelloSpring" p:name="dayday" p:book-ref="book"/>
    <bean name="book" class="dayday.Book" p:bookname="《Spring MVC》"/>
  1. </beans>
  2.  
  3. 运行结果
    hello dayday ,study Spring hard!!!
  4.  
  5. <property>中使用ref
    src\dayday\HelloSpring.java
  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class HelloSpring {
    private Book book;
    private String name;
    public void setName(String name){
    this.name=name;
    }
    public void setBook(Book book){
    this.book=book;
    }
    public void println(){
    System.out.println("hello "+name+" ,study Spring hard!!!"+book.print());
    }
  6.  
  7. public static void main(String[] args){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    HelloSpring hellospring=ctx.getBean("hellospring",HelloSpring.class);
    hellospring.println();
    }
  8.  
  9. }
  1. src\dayday\Book.java
  1. package dayday;
  2.  
  3. /**
    * Created by I am master on 2016/11/28.
    */
    public class Book {
    private String bookname;
    public void setBookname(String bookname){
    this.bookname=bookname;
    }
    public String print(){
    return "read "+bookname;
    }
    }
  1. src\dayday\Main.java
  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class Main {
    public static void main(String[] args){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    HelloSpring hellospring=ctx.getBean("hellospring",HelloSpring.class);
    hellospring.println();
    }
  6.  
  7. }
  1. src\dayday\beans.xml
  1. <?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="hellospring" class="dayday.HelloSpring">
    <property name="name" value="dayday"/>
    <property name="book" ref="book"></property>
    </bean>
    <bean id="book" class="dayday.Book">
    <property name="bookname" value="《Spring mvc》"></property>
    </bean>
    </beans>
  1. 通过构造注入,之前的都为设值注入
    //若通过构造注入,bean(java类)中必须要有构造函数
    通过<constructor-arg.../>注入,value="String等基本类型" ref=“bean
    可以通过index属性指定构造参数值将作为第几个构造参数值,index="0"表明作为第一个构造函数参数值,错位开了
    一般采用设值注入为主,构造注入为辅
    src\dayday\HelloSpring.java
  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class HelloSpring {
    private Book book;
    private String name;
  6.  
  7. public HelloSpring(String name,Book book){
    this.name=name;
    this.book=book;
    }
    public void println(){
    System.out.println("hello "+name+" ,study Spring hard!!!"+book.print());
    }
  8.  
  9. public static void main(String[] args){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    HelloSpring hellospring=ctx.getBean("hellospring",HelloSpring.class);
    hellospring.println();
    }
  10.  
  11. }
  1.  
  1. src\dayday\Book.java
  1. package dayday;
  2.  
  3. /**
    * Created by I am master on 2016/11/28.
    */
    public class Book {
    private String bookname;
    public Book(String bookname){
    this.bookname=bookname;
    }
    public String print(){
    return "read "+bookname;
    }
    }
  1.  
  1. src\dayday\Main.java
  1. package dayday;
  2.  
  3. import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
  4.  
  5. /**
    * Created by I am master on 2016/11/28.
    */
    public class Main {
    public static void main(String[] args){
    ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml");
    HelloSpring hellospring=ctx.getBean("hellospring",HelloSpring.class);
    hellospring.println();
    }
  6.  
  7. }
  1.  
  1. src\dayday\beans.xml
  1. <?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="hellospring" class="dayday.HelloSpring">
    <constructor-arg value="dayday"></constructor-arg>
    <constructor-arg ref="book"></constructor-arg>
    </bean>
    <bean id="book" class="dayday.Book">
    <constructor-arg value="《Spring MVC》"></constructor-arg>
    </bean>
    </beans>
  1. bean作用域的配置 
    scope属性来配置bean的作用域
    Singleton:默认值,容器初始时创建bean实例
    在执行 <bean id="hellospring" class="dayday.HelloSpring">这句是调用无参构造函数创建
    在整个容器的生命周期内只创建这一个bean,单例的
    常用的还有
    prototype,每次调用getbean()方法就调用构造函数创建一个bean
  1.  

初学Spring的更多相关文章

  1. 初学Spring有没有适合的书

    初学者之前没有阅读java框架源码的习惯.没有阅读过源码,知道整体流程么?知道依赖注入的概念么?知道aop么?知道其中用到了哪些设计模式么?再说了,如果一上手就是源码?难道你没有注意到Spring的类 ...

  2. 初学 Spring boot 报错 Whitelabel Error Page 404

    按照教程,写了个最简单的 HelloWorld,尼玛报错 -->Whitelabel Error Page 404. 网上99%都是项目结构不对,说什么 Application放在父级 pack ...

  3. 初学spring boot踩过的坑

    一.搭建spring boot环境 maven工程 pom文件内容 <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  4. 记录初学Spring boot中使用GraphQL编写API的几种方式

    Spring boot+graphql 一.使用graphql-java-tools方式 <dependency> <groupId>com.graphql-java-kick ...

  5. 初学 spring

    1.spring 开发环境,包含eclipse https://spring.io/tools3/sts/all/

  6. 初学spring(二)

      1.spring推荐使用接口编程,配合di可以达到层与层之间解耦

  7. 初学spring(一)

    1.spring 在ssh 中所处的位置 struts 是web框架(jsp,action,actionform) hibernate 是orm框架,处于数据持久层 spring 是容器框架,配置be ...

  8. 初学spring之入门案列

    spring其实是一个很大的开源框架,而我学的就是spring framework,这只是spring其中的一小部分.有疑惑的可以去官网去看看,spring官网我就不提供了.一百度肯定有.和sprin ...

  9. 初学Spring的感觉

    1.使用接口 不同的类实现同一接口后都会变成同一类型的类.   spring作业1的思路 lab1: 建立一个有一个输出方法的接口类|并建一个英语类和一个数学类实现该接口.   这两个实现类都重写了那 ...

随机推荐

  1. SPSS数据分析—信度分析

    测量最常用的是使用问卷调查.信度分析主要就是分析问卷测量结果的稳定性,如果多次重复测量的结果都很接近,就可以认为测量的信度是高的.与信度相对应的概念是效度,效度是指测量值和真实值的接近程度.二者的区别 ...

  2. 【WebGoat习题解析】AJAX Security->Insecure Client Storage

    绕过前端验证可以通过两种办法:一是利用开发者工具进行debug:二是利用burpsuite直接抓取.本题解决思路如下: STAGE 1: For this exercise, your mission ...

  3. angularjs自定义指令

    my-directive为指令名称,thisdata为绑定的数据 <span ng-repeat="act in move.casts" style="positi ...

  4. 0527 Sprint 1 总结

    首页 登陆与注册 除登陆和注册之外,我们觉得最主要的是做完登陆和注册的返回功能 界面选项 查询界面 显而易见的我们做了界面之后我们的工作量也减少了,因为相对来讲前期工作比较容易,而各个功能板块所计划的 ...

  5. Python【3】-字典dic和集合set

    一.字典dict dict以键值对形式存储,创建方式是用大括号{}并用冒号分隔键和值. >>> d={'chen':60,'zhang':80} >>> print ...

  6. 字符编码笔记:ASCII,Unicode和UTF-8(转载)

    作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步 ...

  7. (转)如何用Maven创建web项目(具体步骤)

    原文链接:http://blog.csdn.net/chuyuqing/article/details/28879477 使用eclipse插件创建一个web project 首先创建一个Maven的 ...

  8. config配置文件的一些东西

    /* 模板相关配置 */ 'TMPL_PARSE_STRING' => array( '__STATIC__' => __ROOT__ . '/Public/static', '__ADD ...

  9. 基于内存,redis,mysql的高速游戏数据服务器设计架构

    转载请注明出处,欢迎大家批评指正 1.数据服务器详细设计 数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改. 数据层次上分为:内存数据,redis数据,mysql数据 设计目的: ...

  10. python网络编程【三】(网络服务器)

    建立一个服务器需要以下4步: 1.建立socket对象. 2.设置socket选项(可选的) 3.绑定到一个端口(同样,也可以是一个指定的网卡). 4.侦听连接. 下面代码片段可以实现这些功能: ho ...