Spring实现无需注解实现自动注入

xml配置

过程:设置自动装配的包-->使用include-filter过滤type选择为regex为正则表达式-->expression是表达是式也就是限制条件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 6         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 7     <!-- 用于自动装配 -->
 8     <context:component-scan base-package="cn.lonecloud">
 9         <!-- 包含某个包下的Dao层type 类型 regex表示正则表达式 expression 需要设置的限制条件 -->
10         <!-- 使用这个的表示的包下的某些符合该表达式的Dao层可以不用使用注解即可直接使用 -->
11         <context:include-filter type="regex" expression="cn.lonecloud.dao.*Dao.*"/>
12         <context:include-filter type="regex" expression="cn.lonecloud.service.*Service.*"/>
13         <!-- 用于配置在该类型下的类将不被Spring容器注册 -->
14         <context:exclude-filter type="regex" expression="cn.lonecloud.service.TestService"/>
15     </context:component-scan>
16
17 </beans>

Dao层

1 package cn.lonecloud.dao;
2
3 public class TestDao {
4     public void Test01() {
5         System.out.println("Dao");
6     }
7 }

Service层

 1 package cn.lonecloud.service;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4
 5 import cn.lonecloud.dao.TestDao;
 6
 7 public class TestService {
 8
 9     @Autowired
10     TestDao testDao;
11
12     public void Test01(){
13         testDao.Test01();
14     }
15 }

Test层

 1 package cn.lonecloud.test;
 2
 3 import org.junit.Before;
 4 import org.junit.Test;
 5 import org.springframework.context.support.ClassPathXmlApplicationContext;
 6
 7 import cn.lonecloud.service.TestService;
 8
 9 public class TestMain {
10     ClassPathXmlApplicationContext xmlApplicationContext=null;
11     @Before
12     public void init(){
13         xmlApplicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
14     }
15     @Test
16     public void Test01(){
17         TestService testService=xmlApplicationContext.getBean(TestService.class);
18         testService.Test01();
19     }
20 }
时间: 2024-12-27 07:25:03

Spring实现无需注解实现自动注入的相关文章

Spring 注解Autowired自动注入bean异常解决

错误: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined 错误的一般解决办法: 1.看xxbean是否已经注入,或者得到的bean名字错误. 2.看spring的配置文件<context:component-scan base-package="com.xx"></context:component-scan>是否扫描了 c

spring mvc 3.1的自动注入参数遇到的问题

在网上下载了xheditor作为页面的编辑器,编辑内容后post到后台保存,后台方法用spring mvc的自动注入的方式接收参数. 这种方式在各个浏览器下运行良好,但是在ie11下发现,从word.文本编辑器或者其它编辑器复制内容到xheditor后,这时提交到后台的参数不能被接收到. 仔细排查下发现ie11下复制到xheditor的内容都被默默的加了一段无用的div: <div style="top: 0px;"> </div> 此时用最原始的接收参数的方式

Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea

文章大纲 在xml中声明bean和注入bean 在xml中声明bean和自动注入bean 自动扫描bean和自动注入bean 对自动扫描bean增加约束条件 首次接触spring请参考 Spring 3.0 学习-环境搭建和三种形式访问 1.典型的Spring XML 配置文件表头 <?xml version="1.0" encoding="UTF-8"?><!-- 一般化的Spring XML 配置 --> <beans xmlns=

Spring中@Autowired注解与自动装配

1 使用配置文件的方法来完成自动装配我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法.比如:Boss 拥有 Office 和 Car 类型的两个属性:public class Boss { private Car car; private Office office; // 省略 get/setter @Override public String toString() { retu

spring mvc3的注解@ResponseBody 自动返回jason

第三种利用spring mvc3的注解@ResponseBody 例如: [java] view plain copy print? @ResponseBody @RequestMapping("/list") public List<String> list(ModelMap modelMap) { String hql = "select c from Clothing c "; Page<Clothing> page = new Pag

阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入

运行出现了空指针异常 @Autowired 注解出现的位置 AutoWired的代码 常用的就是写类上和方法上. 运行测试,刚才运行是一个空指针异常 也就是通过Autowired 这个accountDao这个对象不为空了. 注入成功原理 自动按照类型注入.IAccountDao去Spring的容器里面直接找的Value值 如果把实现类继承接口IAccountDao这里代码注释掉的话 再次运行就发现注不进去报错. 假设容器中两个实现类 复制一份改个名字 id后面也加上2 第一个实现的实现接口的代码

使用Spring Aop自定义注解实现自动记录日志

百度加自己琢磨,以下亲测有效,所以写下来记录,也方便自己回顾浏览加深印象之类,有什么问题可以评论一起解决,不完整之处也请大佬指正,一起进步哈哈(1)首先配置文件: <!-- 声明自动为spring容器中配置@aspectj切面的bean创建代理 ,织入切面 --> <aop:aspectj-autoproxy /> <!-- 开启注解扫描 --> <context:component-scan base-package="com.ky.zhjd.**&q

spring读取配置文件内容并自动注入

添加注解: @PropertySource(value={"classpath:venus.properties"}) 示例: import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Service; import java.u

Spring自动注入properties文件

实现spring 自动注入属性文件中的key-value. 1.在applicationContext.xml配置文件中,引入<util />命名空间. xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/util http://www.springframework.org/schema