您当前的位置:首页 > 互联网教程

java中的@repository什么意思

发布时间:2025-05-24 23:27:27    发布人:远客网络

java中的@repository什么意思

一、java中的@repository什么意思

spring中的注解,@Repository用于标注数据访问组件,即DAO组件。例:

public class VentorDaoImpl implements iVentorDao{

在一个稍大的项目中,如果组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便。

Spring2.5为我们引入了组件自动扫描机制,他在类路径下寻找标注了上述注解的类,并把这些类纳入进spring容器中管理

它的作用和在xml文件中使用bean节点配置组件时一样的。要使用自动扫描机制,我们需要打开以下配置信息:

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

<beans xmlns="

xmlns:xsi=""

xmlns:context=""

xsi:schemaLocation="

">

<context:component-scan base-package=”com.eric.spring”>

@Component:这将 java类标记为 bean。它是任何 Spring管理组件的通用构造型。spring的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。

@Controller:这将一个类标记为 Spring Web MVC控制器。标有它的 Bean会自动导入到 IoC容器中。

@Service:此注解是组件注解的特化。它不会对@Component注解提供任何其他行为。您可以在服务层类中使用@Service而不是@Component,因为它以更好的方式指定了意图。

@Repository:这个注解是具有类似用途和功能的@Component注解的特化。它为 DAO提供了额外的好处。它将 DAO导入 IoC容器,并使未经检查的异常有资格转换为 Spring DataAccessException。

二、java如何调用webservice接口

Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。

import java.rmi.RemoteException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.message.PrefixedQName;

import org.apache.axis.message.SOAPHeaderElement;

import com.cezanne.golden.user.Exception;

import com.cezanne.golden.user.UserManagerServiceProxy;

import javax.xml.namespace.QName;

import java.net.MalformedURLException;

import javax.xml.rpc.ServiceException;

import javax.xml.soap.SOAPException;

public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException

String endpoint="WebService服务地址";

Service service= new Service();

//通过Service实例创建Call的实例

Call call=(Call) service.createCall();

//将Web Service的服务路径加入到call实例之中.

call.setTargetEndpointAddress( new java.net.URL(endpoint));//为Call设置服务的位置

//由于需要认证,故需要设置调用的SOAP头信息。

Name headerName= new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url","string_itemName"));

org.apache.axis.message.SOAPHeaderElement header= new SOAPHeaderElement(headerName);

header.addTextNode("blablabla");

// SOAPHeaderElement soapHeaderElement= new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url","SoapHeader");

// soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");

// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");

// call.addHeader(soapHeaderElement);

org.apache.axis.description.OperationDesc oper;

org.apache.axis.description.ParameterDesc param;

oper= new org.apache.axis.description.OperationDesc();

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("","string"), java.lang.String.class, false, false);

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("","string"), java.lang.String.class, false, false);

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("","string"), java.lang.String.class, false, false);

oper.setReturnType(new javax.xml.namespace.QName("","string"));

oper.setReturnClass(java.lang.String.class);

oper.setReturnQName(new javax.xml.namespace.QName("","return"));

oper.setStyle(org.apache.axis.constants.Style.WRAPPED);

oper.setUse(org.apache.axis.constants.Use.LITERAL);

oper.addFault(new org.apache.axis.description.FaultDesc(

new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","opName"));

String res=( String) call.invoke( new Object[]("arg0","arg1"));

System.out.println("===============");

public static void main(String[] args){

System.out.println(getResult());

} catch(MalformedURLException e){

2、利用Eclipse自动生成WebService client代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)

首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish

这样,WebService Client代码已经生成好了。

接下来写一个Test类,在main函数中输入如下代码:

String endpoint="服务器的WebService的地址";

YourWebServiceNameProxy umsp= new YourWebServiceNameProxy(endpoint);

String resultStr= umsp.opMethod("arg0","arg1");

System.out.println(resultStr);

System.out.println("RemoteException异常");

如果还有疑问的话还有视频,如果对你有帮助请采纳!

三、java 如何生成wsdl文件

原则上,你可以先把JAVA生成.net的文件,然后根据以下其中一个方法,转变为WSDL

1.在Web Service的URL后面加上WDSL需求,如下:

2.使用disco.exe。在命令行中写下如下的命令:

disco

3.使用System.Web.Services.Description命名空间下提供的类

每个 WSDL文件的根元素都是<definitions>,必须在其中提供服务的完整描述。首先,必须在<definitions>元素中提供各种名称空间的声明。

<definitions>元素包含一个或多个< portType>元素,每个元素都是一系列 operation。可以将单个portType元素看作是将各种方法组成类的一个逻辑分组。应该将每个Types称为服务,因此整个 WSDL文件将成为一个服务集合。

在每个服务内可以有几个方法或者 operation,WSDL通过<operation>元素来引用它们。

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

<definitions name="MobilePhoneService"

targetNamespace="www.mobilephoneservice.com/MobilePhoneService-interface"

xmlns=""

xmlns:soap=""

xmlns:tns=""

xmlns:xsd="">

<portType name="MobilePhoneService_port">

<operation name="getListOfModels">

<operation name="getPrice">