spring配置和dubbo

暑假找到了实习,刚进公司就做了一个脱产的模拟系统,积分商城.在这中间的新同事用了很多以前不熟悉的东西,比如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的时候默认的名字首字母是小写,我之前就犯了这个错误,然后找了一上午,最后请教同事才解决了这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值