spring-使用注解实现Bean自动装配1

简介:
一、创建项目
    项目名称:spring100802
二、在项目中添加spring 支持
    1.在项目中创建lib目录
        /lib
    2.在lib目录下添加jar包
        commons-logging.jar
        junit-4.10.jar
        log4j.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
三、在项目中添加配置文件
    1.在项目中创建conf目录
        /conf
    2.在conf目录添加配置文件
        配置文件名称:applicationContext.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: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">
        </beans>
四、相关bean的创建
    1.在src目录下创建dao
        包名:cn.jbit.spring100801.dao
        接口名:IUserDao.java
        接口中内容:
        /**
         * 持久层接口
         * @author Administrator
         *
         */
        public interface IUserDao {
            public int insert();
        }
        实现类名:UserDaoImpl.java
        实现类中内容:
        /**
         * 持久层实现类
         * @author Administrator
         *
         */
        @Repository("udao")
        public class UserDaoImpl implements IUserDao {
            @Override
            public int insert() {
                System.out.println("userDao被执行。。。");
                return 0;
            }
        }
    2.在src目录下创建service
        包名:cn.jbit.spring100801.service
        接口名:IUserService.java
        接口中内容:
        /**
         * 用户业务层接口
         * @author Administrator
         *
         */
        public interface IUserService {
            /**
             * 注册
             */
            public void register();
        }
        实现类名:UserServiceImpl.java
        实现类中内容:
        @Service("userService")
        public class UserServiceImpl implements IUserService {
            //调用持久层
            private IUserDao userDao;
            @Override
            public void register() {
                System.out.println("userService被执行。。。。");
                userDao.insert();
            }
            //自动装配bean操作
            @Autowired
            //指定bean id
            @Qualifier("udao")
            public void setUserDao(IUserDao userDao) {
                this.userDao = userDao;
            }
            public IUserDao getUserDao() {
                return userDao;
            }
        }
    3.在配置文件中配置注解扫描和注解解析
        <!-- 通知spring解析常用的注解 -->
        <context:annotation-config/>
        <!-- 通知spring应用注解bean所在位置 -->
        <context:component-scan base-package="cn.jbit.spring100801"></context:component-scan>
五、测试
    1.在项目中创建test目录
        /test
    2.在test目录下创建测试包
        包名:cn.jbit.spring100801.service        
    3.在包下创建测试类
        类名:UserServiceImplTest.java
        内容:
        /**
         * 测试类
         * @author Administrator
         */
        public class UserServiceImplTest {
            
            /**
             * 测试登录方法
             */
            @Test
            public void testRegister(){
                //读取并解析配置文件
                ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
                //根据bean id获取bean
                IUserService userService = (IUserService) context.getBean("userService");
                //调用bean中方法
                userService.register();
            }

        }

本文转自  素颜猪  51CTO博客,原文链接:http://blog.51cto.com/suyanzhu/1561198

相关文章
|
2月前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
522 128
|
2月前
|
XML 安全 Java
使用 Spring 的 @Aspect 和 @Pointcut 注解简化面向方面的编程 (AOP)
面向方面编程(AOP)通过分离横切关注点,如日志、安全和事务,提升代码模块化与可维护性。Spring 提供了对 AOP 的强大支持,核心注解 `@Aspect` 和 `@Pointcut` 使得定义切面与切入点变得简洁直观。`@Aspect` 标记切面类,集中处理通用逻辑;`@Pointcut` 则通过表达式定义通知的应用位置,提高代码可读性与复用性。二者结合,使开发者能清晰划分业务逻辑与辅助功能,简化维护并提升系统灵活性。Spring AOP 借助代理机制实现运行时织入,与 Spring 容器无缝集成,支持依赖注入与声明式配置,是构建清晰、高内聚应用的理想选择。
411 0
|
2月前
|
Java 测试技术 API
将 Spring 的 @Embedded 和 @Embeddable 注解与 JPA 结合使用的指南
Spring的@Embedded和@Embeddable注解简化了JPA中复杂对象的管理,允许将对象直接嵌入实体,减少冗余表与连接操作,提升数据库设计效率。本文详解其用法、优势及适用场景。
293 126
|
3月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
1月前
|
安全 Java 决策智能
Spring Boot自动装配
Spring Boot自动装配基于“约定优于配置”理念,通过条件化配置与Starters机制,智能推断并加载所需组件,大幅简化开发流程。它实现配置自动化,提升效率,降低维护成本,支持自定义扩展,推动微服务快速构建,是Java生态中开发范式的革新之作。(238字)
|
1月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
363 2
|
2月前
|
XML Java 数据格式
常用SpringBoot注解汇总与用法说明
这些注解的使用和组合是Spring Boot快速开发和微服务实现的基础,通过它们,可以有效地指导Spring容器进行类发现、自动装配、配置、代理和管理等核心功能。开发者应当根据项目实际需求,运用这些注解来优化代码结构和服务逻辑。
291 12
|
2月前
|
Java 测试技术 数据库
使用Spring的@Retryable注解进行自动重试
在现代软件开发中,容错性和弹性至关重要。Spring框架提供的`@Retryable`注解为处理瞬时故障提供了一种声明式、可配置的重试机制,使开发者能够以简洁的方式增强应用的自我恢复能力。本文深入解析了`@Retryable`的使用方法及其参数配置,并结合`@Recover`实现失败回退策略,帮助构建更健壮、可靠的应用程序。
352 1
使用Spring的@Retryable注解进行自动重试
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
182 0
探索Spring Boot的@Conditional注解的上下文配置

热门文章

最新文章