美文网首页
Spring学习笔记

Spring学习笔记

作者: 吴忆松 | 来源:发表于2019-11-14 21:12 被阅读0次

    目录

    1.XML方式使用Spring
    2.注解方式使用Spring
    3.注解方式测试


    一、XML方式使用Spring

    1. IOC/DI

    使用Spring共分为四个步骤:导包、创建实体类、配置applicationContext.xml、应用。
    (1)导包
    (2)创建实体类

    package com.how2java.pojo;
     
    public class Category {
     
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
    

    (3)配置applicationContext.xml,放在src目录下

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/context      
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">
      
        <bean name="c" class="com.how2java.pojo.Category">
            <property name="name" value="category 1" />
        </bean>
      
    </beans>
    

    (4)应用

    package com.how2java.test;
     
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
     
    import com.how2java.pojo.Category;
     
    public class TestSpring {
     
        public static void main(String[] args) {
            ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });
     
            Category c = (Category) context.getBean("c");
             
            System.out.println(c.getName());
        }
    }
    

    2.注入对象

    要在product对象中注入一个category对象,步骤如下。
    (1)创建实体类category

    package com.how2java.pojo;
     
    public class Product {
     
        private int id;
        private String name;
        private Category category;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Category getCategory() {
            return category;
        }
        public void setCategory(Category category) {
            this.category = category;
        }
    }
    

    (2)在applicationContext.xml中的product这个bean里加上如下代码。

            <property name="category" ref="c" />
    

    (3)在应用类里可以测试,可以看出category已经被注入到product中。

            Product p = (Product) context.getBean("p");
            System.out.println(p.getCategory().getName());
    

    3.AOP(面向切面编程)

    (1)创建业务类ProductService,它里面有一些辅助功能。
    (2)准备日志切面LoggerAspect。
    (3)配置applicationContext.xml
    (4)应用


    二、注解方式使用Spring

    1.注解方式IOC/DI

    (1) 修改applicationContext.xml
    添加下面代码,表示要用的bean都在pojo包里。同时去掉原来的bean代码。

        <context:component-scan base-package="com.how2java.pojo"/>
    

    (2)修改实体类文件
    首先要在实体类的类名上面加上@Component("XXX")

    @Component("p")
    public class Product {
    

    其次在要注入的对象这个属性上面加@Autowired

        @Autowired
        private Category category;
    

    最后把属性初始化放在属性声明上进行

        private String name="product 1";
    

    2.注解方式AOP

    首先注解配置业务类,这个跟配置实体类一样

    @Component("s")
    public class ProductService {
    

    然后配置切面

    @Aspect
    @Component
    public class LoggerAspect { 
         
        @Around(value = "execution(* com.how2java.service.ProductService.*(..))")
        public Object log(ProceedingJoinPoint joinPoint) throws Throwable {
    

    最后记得写applicationContext.xml

        <context:component-scan base-package="com.how2java.aspect"/>
        <context:component-scan base-package="com.how2java.service"/>
        <aop:aspectj-autoproxy/>  
    

    三、注解方式测试

    (1)导包:junit-4.12.jar和hamcrest-all-1.3.jar
    (2)在应用类中添加注解

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:applicationContext.xml")
    public class TestSpring {
        @Autowired
        Category c;
     
        @Test
        public void test(){
            System.out.println(c.getName());
        }
    

    相关文章

      网友评论

          本文标题:Spring学习笔记

          本文链接:https://www.haomeiwen.com/subject/tiddictx.html