整理入门笔记_Spring

来源:互联网 发布:淘宝类目分析模板 编辑:程序博客网 时间:2024/06/11 13:08

Spring快速笔记XML篇

Spring的概念:

         个人理解,Spring就是一个大大的容器,解决了类与类之间的关联依赖的同时提高了解

         耦合性,省去了各种复杂且重复单调的代码,又可以理解成一个万能的工厂。

 

Spring最简单的应用:

         Jar包:

com.springsource.org.apache.commons.logging-1.1.1.jar              //依赖包

spring-beans-3.2.0.RELEASE.jar

spring-context-3.2.0.RELEASE.jar

spring-core-3.2.0.RELEASE.jar

spring-expression-3.2.0.RELEASE.jar

        

XML头:

                   ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beansxmlns="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">

 

         <!—配置区域 -->

</beans>

 

         例如,编写Student

public class Student {

         private String name;

         private int age;

         public StringgetName() {

                   return name;

         }

         public voidsetName(String name) {

                   this.name =name;

         }

         public int getAge() {

                   return age;

         }

         public void setAge(intage) {

                   this.age =age;

         }

         @Override

         public StringtoString() {

                   return"Student [name=" + name + ", age=" + age + "]";

         }

}

 

         XML中,配置区域内这样写

                  <!-- 配置一个简单的学生Bean -->

                   <beanid="student" class="com.aiyi.bean.Student"></bean>

 

         测试:

         @Test

         public void Test(){

                   //初始化XML

                   ApplicationContextapplication =

                                     newClassPathXmlApplicationContext("ApplicationContext.xml");

                   //获取Bean

                   Studentstudent = (Student) application.getBean("student");

                   //使用Bean的方法

                   student.setAge(18);student.setName("海大仙");

                   System.out.println(student);  //Student [name=海大仙, age=18]

         }

 

依赖注入(一个类中包含另一个类)

 

         创建MyBean类:

public class MyBean {

         private Studentstudent;         //这个类中依赖Student这个类

 

         public StudentgetStudent() {

                   returnstudent;

         }

 

         public voidsetStudent(Student student) {               //提供set方法

                   this.student= student;

         }

 

         @Override

         public StringtoString() {

                   return"MyBean [student=" + student + "]";

         }

}

 

         XML

         <!-- 配置一个简单的学生Bean -->

         <beanid="student" class="com.aiyi.bean.Student"></bean>

         <!-- 再配置一个Bean,把学生注入进去 -->

         <beanid="myBean" class="com.aiyi.bean.MyBean">

                   <propertyname="student" ref="student"></property>

         </bean>

 

测试:

         @Test

         public void test1() {

                   //初始化XML

                   ApplicationContextapplication =

                                     newClassPathXmlApplicationContext("ApplicationContext.xml");

                   MyBean bean= (MyBean)application.getBean("myBean");

                   System.out.println(bean);                //MyBean [student=Student[name=null, age=0]]

         }

 

工厂Bean(整合其他框架或者使用已存在的工厂)

假设Student是通过如下工厂创建的:

public class StudentFactory {

         public StudentgetStudent(){           //获取Student的方法

                   return newStudent();

         }

}

 

XML

     <!-- 先配置这个工厂 -->

     <bean id="myFactory"class="com.itheima.bean.StudentFactory"></bean>

     <!-- 配置Student,通过工厂 -->

     <beanid="myStudent" factory-bean="myFactory"factory-method="getStudent">

</bean>

 

         测试:

         @Test

         public void Test2(){

                   //初始化XML

                   ApplicationContextapplication =

                                      newClassPathXmlApplicationContext("ApplicationContext.xml");

                   //直接调用getBeanSpring会自动用工厂创建并返回给你

                   Studentstudent = (Student) application.getBean("myStudent");

                   //使用Bean的方法

                   student.setAge(18);student.setName("海大仙");

                   System.out.println(student);  //Student [name=海大仙, age=18]

         }

                  

 

 

 

设置Bean的作用域

Scope

读音:死狗扑

翻译:范围

 

ApplicationContext.xml配置bean的时候,可以添加一个scope属性,他的作用就是设置这个bean的范围

<bean id="myFactory"class="com.itheima.bean.StudentFactory" scope=” singleton”>

         <!---这里在后面加了一个scope属性值为singlenton,表示单例。默认--->

</bean>

 

Scope的各种取值

         singleton:单例,默认值

         prototype:多例。例如:struts spring整合时,action必须配置多例。

         request:一次请求

         session:一次会话

         global session:集群一次会话。

要求掌握:singletonprototype

 

 

P命名空间

         P命名空间方便为bean的基本属性赋值,比如说Studentnameage这个属性,那么

XML

         <bean id=”student” calss=”com.aiyi.bean.Student”p:name=”海大仙” p:age=”19”>

</bean>  

代码:

         ApplicationContext application =

                                     newClassPathXmlApplicationContext("ApplicationContext.xml");

//获取Bean,会自动给他付给nameage的值

Student student = (Student)application.getBean(”student”);

Systom.out.println(student);

 

Spring 的强大之处远远不止如此,这只是Spring的冰山一角,昨天整理的笔记,有时间继续整理

0 0
原创粉丝点击