Spring框架学习:IOC操作Bean管理-基于注解方式(对象创建)(十)

1、什么是注解

(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值.…)
(2)使用注解:注解作用在类上面,方法上面,属性上面
(3)使用注解目的:简化l配置

2、Spring针对Bean管理中创建对象提供注解

(1)@Component
(2)@Service
(3)@Controller
(4)@Repository
*上面四个注解功能是一样的,都可以用来创建bean实例
其实可以混用,但是为了区分不同层,@Controller用在web层
@Service用在业务层 @Repository用在dao层

3、基于注解方式实现对象创建

第一步:引入依赖
spring-aop-5.2.6.RELEASE.jar
第二步:开启组件扫描和引入命名空间context

<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.xsd
                          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--开启组件扫描
        1.如果扫描多个包,多个包使用 逗号 隔开
        2.扫描上层目录-->
    <context:component-scan base-package="com.spring5.service,com.spring5.dao"></context:component-scan>
<!--    <context:component-scan base-package="com.spring5"></context:component-scan>-->

第三步:创建类,在类上添加创建对象注解

//注解里面value属性值可以省略不写,默认值时类名称 首字母小学
//@Component
//@Component("userService")
//@Component(value = "userService")    //相当于 <bean id ="" class = ""/>
//@Controller
@Service
public class UserService {

    public void add(){
        System.out.println("add .....");
    }
}

junit测试

@Test
    public void test5(){

        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");

        UserService userService = context.getBean("userService", UserService.class);
        System.out.println(userService);
        userService.add();
    }

测试结果:
userService对象创建成功

com.spring5.service.UserService@69930714
add .....

4.开启组件扫描细节

 <!--示例1
        user-default-filters="false"    表示现在不使用默认filter 自己配置filter
        context:include-filter 设置要扫描的内容,只扫描com.spring5下Controller的注解
        -->
    <context:component-scan base-package="com.spring5" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--示例2
        下面配置扫描包所有内容
           context:exclude-filter: 设置那些内容不进行扫描
           排除com.spring5下面的Controller注解-->
    <context:component-scan base-package="com.spring5">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
暂无评论

发送评论 编辑评论


				
上一篇
下一篇