Spring入门注解版

Posted x_jingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring入门注解版相关的知识,希望对你有一定的参考价值。

参照博文Spring入门一,以理解注解的含义。

项目结构:

实现类:SpringHelloWorld

package com.yibai.spring.helloworld.impl;

import org.springframework.stereotype.Component;

import com.yibai.spring.helloworld.HelloWorld;

@Component
public class SpringHelloWorld implements HelloWorld{

    @Override
    public void sayHello() {
        System.out.println("spring hello world");
        
    }

}

实现类:strutsHelloWorld

package com.yibai.spring.helloworld.impl;

import org.springframework.stereotype.Component;

import com.yibai.spring.helloworld.HelloWorld;

@Component
public class StrutsHelloWorld implements HelloWorld{

    @Override
    public void sayHello() {
        System.out.println("struts hello world");
    }

}

service类:

package com.yibai.spring.helloworld;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yibai.spring.helloworld.impl.SpringHelloWorld;
import com.yibai.spring.helloworld.impl.StrutsHelloWorld;

@Service
public class HelloWorldService {

    @Resource
    private SpringHelloWorld helloWorld;
    
    @Resource
    private StrutsHelloWorld helloWorld2;
    
    public HelloWorldService(){
        
    }

    public void show(){
        helloWorld.sayHello();
        helloWorld2.sayHello();
    }
    
    
}

主方法类:

package com.yibai.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yibai.spring.helloworld.HelloWorldService;

public class HelloProgram {

    public static void main(String[] args) {
        
        // 创建上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        
        HelloWorldService service = (HelloWorldService) context.getBean("helloWorldService");
        
        service.show();
        
    }
}

配置类:web.xml不变,spring配置applocationContext.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" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
 -->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd">

    <context:component-scan base-package="com.yibai.spring"/>


</beans>

service中,通过@resource注解需要注入的bean,实现类通过@Component完成spring配置,service类通过@Service完成spring配置。

附包名:多了一个aop包

补充:

有四种类型的组件自动扫描注释类型

  @Component  指示自动扫描组件,这四种注解最终都被注解为Component,故可以用这个注解代替所有的组件扫描注解

  @Repository  表示在持久层DAO组件

  @Service  表示在业务层服务组件

  @Controller  表示在表示层控制器组件

 过滤器组件扫描spring配置:自动扫描类文件名中包含 Service和 Impl 的类

<context:component-scan base-package="com.yibai.spring">
     <context:include-filter type="regex" expression=".*Service.*"/>
     <context:include-filter type="regex" expression=".*Impl.*"/>
</context:component-scan>

 

以上是关于Spring入门注解版的主要内容,如果未能解决你的问题,请参考以下文章

Java之Spring入门到精通IDEA版IoC和DI注解开发(一篇文章精通系列)

spring注解版

Java之Spring AOP入门到精通IDEA版(一篇文章精通系列)

Spring从入门到精通—注解开发

spring5:IOC 操作 Bean 管理(基于注解方式)

Spring/Spring-Boot 学习2 入门知识