您的位置:首页 > 编程语言 > Java开发

spring配置和dubbo

2015-07-21 13:58 423 查看
暑假找到了实习,刚进公司就做了一个脱产的模拟系统,积分商城.在这中间的新同事用了很多以前不熟悉的东西,比如dubbo,第一个做项目不是以创建web项目的方式,而是建立一个普通的java工程,然后建立另一个表面的项目,作为接口的暴露项目,另一个项目作为实际代码的编写项目,这样处理的确可以更加的安全.收获很多,写一下收获和遇到的一些问题吧.

spring的配置

以前用的都是使set/get的方式进行注入的,而在这个项目中使用的都是注解的方式。

先来一个spring的配置文件吧:

applicationContext.xml的文件:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Application context definition. -->
<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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:aop="http://www.springframework.org/schema/aop"
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 http://www.springframework.org/schema/tx http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/aop http://www.springframework.org/schema/jdbc/spring-jdbc.xsd" >
<!--  配置使用注解,这是统一的配置所有的注解,也可以单独的配置注解,比如单独配置@Autowired等 -->
<context:annotation-config />
<!-- 自动扫描code包,将带有注解的类纳入spring容器管理,带有注释的比如@Autowired 等等的类加入spring容器管理 -->
<context:component-scan base-package="test.code" />
<!-- 下面可以导入其他的xml文件-->
<import resource="applicationContext-service.xml"/>

</beans>


applicationContext-service.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!-- Application context definition. -->
<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"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:aop="http://www.springframework.org/schema/aop"
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 http://www.springframework.org/schema/tx http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/aop http://www.springframework.org/schema/jdbc/spring-jdbc.xsd" >

<!-- bean define -->
<!-- demo service for dubbo RPC -->
<!--    <bean id="remoteService" class="com.pingan.demo.service.RemoteUserServiceImp" >
<property name="userDao" ref="userDao"></property>
</bean>
DAO configuration
<bean id="userDaoImpl" class="com.pingan.demo.dao.UserDaoImpl" parent="parentDao" />
<bean id="accountDao" class="com.pingan.demo.dao.AccountDaoImpl" parent="parentDao" />
<bean id="accountService" class="com.pingan.account.service.AccountServiceImpl"></bean>
-->
<bean id="Hello" class="test.mhctest.Hello">
<property name="name" value="Menghucheng"/>
</bean>
<!--  如果不用注解的话就需要使用下面这种方式来注入
<bean id="TestDao1" class="test.code.dao.TestDao1"></bean>
-->
</beans>


Testdao1的class

package test.code.dao;

import org.springframework.stereotype.Component;

@Component
/**
*
* @author MENGHUCHENG012
*  测试类
*  用Component注释将当前的类加入到spring的管理容器
*/
public class TestDao1 implements ITestDao1 {

public TestDao1(){
System.out.println("我是TestDao1的构造");
}
@Override
public void say1() {
System.out.println("我是ITestDao1的say1方法");

}

}


还有的类和上面的类似,最后一个是供测试的类

App.class

package test.mhctest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import test.code.dao.ITestDao1;
import test.code.dao.TestDao1;
import test.code.service.ITestService1;
import test.code.service.TestService1;

/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean的时候默认首字母是小写
TestService1 testService1 = (TestService1) act.getBean("testService1");
ITestDao1 testDao1 = (TestDao1)act.getBean("testDao1");
testService1.say();

System.out.println( "Hello World!" );
}
}


spring获取bean的时候默认的名字首字母是小写,我之前就犯了这个错误,然后找了一上午,最后请教同事才解决了这个问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: