Bueno, acá publico un ejemplo simple de un Web Servicess que implementa spring, para levantar servicios virtuales, con una capa de datos también por inyección de código. Ну, вот простой пример государственного Web Servicess, которая реализует весной строить виртуальные услуги, причем слой данных также вводили код.
Son mis primeras experiencias, así que las quiero compartir con ustedes, las capas que tengo son: Это мой первый опыт, поэтому я хочу поделиться с вами, я имею слои:

Ahora les explico, no tiene gran funcionalidad este ejemplo, ya que solo lo hice para compartir… y no es para ningún desarrollo real. Сейчас я объясню, она имеет большой функциональности этот пример потому, что я сделал только для того, чтобы поделиться ... а не для какого-либо реального развития.
Tengo el Я

Sería el CommonTypes, el objeto que voy a transferir, para este caso no tiene mucho sentido, pero más adelante voy a mostrar como consumir un WS por spring.Net, y en este caso si es útil para saber que voy a recibir. CommonTypes бы объект я передача, в данном случае не имеет смысла, но потом я покажу, как потреблять БЫЛО spring.Net, и если да, то ли это полезно знать, что я буду получать.
Así que es una clase sin nada en particular Так что в классе ни с чем, в частности,

….. ... ..

En el DAO, defino las interfaces, así puedo tener un Sql Implementation, Oracle, Xml, lo que quisiera realmente, no hay ningún secreto por ahora. В DAO, определить интерфейсы, так что я могу выполнения SQL, Oracle, XML, так что я действительно не секрет, на данный момент.
Ahora veamos las otras dos capas que nos quedan Теперь давайте посмотрим с другой в два яруса, которые мы

En Entitys, es una interfaz del WebServices… en este caso, es muy simple В Entitys является интерфейс WebServices ... В этом случае очень прост

Y en ServiceImplementation, simplemente hay que implementar y codificarlo. И ServiceImplementation просто осуществлять и кодирования.

Bueno ahora vamos a ver, mas sobre este UserService… Ну теперь вы можете видеть больше об этом ... UserService

Generamos estas propiedades, para asignarle por spring, una instancia del DAO, podría ser de sql, oracle, o lo que quisieran, mientras implementaran la interfaz … Eso es lo que ofrece spring.net Генерировать эти свойства назначить на весну, экземпляр DAO может быть SQL, Oracle, или то, что они хотят, а она реализует ... Именно это дает spring.net
En nuestro método, usamos este DAO que asignamos, para traer “x” dato. На наш метод, мы используем эту DAO мы придаем довести "х" данные.

Ahora, solo nos falta configurar el WebServices. Теперь нам нужно настроить WebServices.

Generen, una carpeta “X”, con un Xml de configuración, en mi caso “Configuration”, y “webServices.xml”. Создайте папку "X" с Xml конфигурация, в моем случае "Конфигурация" и "webServices.xml.
En este mismo, tenemos que hacer todo el mapping В этом, мы должны делать картографирование
<? xml <? Xml
version = “ 1.0 “ Версия = "1.0"
encoding = “ utf-8 “ ?> кодировка = "UTF-8"?>
< objects <Объекты
xmlns = “ http://www.springframework.net “ > xmlns = "http://www.springframework.net">
< description > Servicios Expuestos </ description > Услуги <description> воздействием </ описание>
< object <Объект
id = “ UserServiceAsmx “ ID = "UserServiceAsmx"
type = “ Synnax.Core.WS.UserAuthentication.ServiceImplementation.UserService, Synnax.Core.WS.UserAuthentication.ServiceImplementation “ > Тип = "Synnax.Core.WS.UserAuthentication.ServiceImplementation.UserService, Synnax.Core.WS.UserAuthentication.ServiceImplementation">
< property <Недвижимость
name = “ IUser “ Имя = "IUser"
ref = “ UserDAO “ /> Ref = "UserDAO" />
</ object > </ OBJECT>
< object <Объект
id = “ UserDAO “ ID = "UserDAO"
type = “ Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation.UserImpl, Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation “ /> Тип = "Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation.UserImpl, Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation" />
< object <Объект
id = “ UserServices “ ID = "UserServices"
type = “ Spring.Web.Services.WebServiceExporter, Spring.Web “ > Тип = "Spring.Web.Services.WebServiceExporter, Spring.Web">
< property <Недвижимость
name = “ TargetName “ Имя = "TargetName"
value = “ UserServiceAsmx “ /> Значение = "UserServiceAsmx" />
< property <Недвижимость
name = “ Namespace “ Имя = "имен"
value = “ http://synnax/services/ “ /> Значение = "http://synnax/services/" />
< property <Недвижимость
name = “ Description “ NAME = "Описание"
value = “ Web Service de Usuario “ /> Значение = "Веб-служба пользователя" />
</ object > </ OBJECT>
</ objects > </ Объекты>
En sí, configuramos un objeto UserDAO , que apunta a la implementación del DAO que queremos, en este caso una para SqlServer, generamos un Objeto “ UserServiceAsmx “, que apunta a la implementación del WS, y como verán le asigno la propiedad IUser, que espera una implementación del DAO, en este caso el UserDAO que configuramos. Таким образом, мы настроить объект UserDAO, указывающие на осуществление DAO мы хотим, в этом случае для SqlServer, мы генерируем Цель "UserServiceAsmx", указывая на осуществление было и присвоит ему IUser собственности, которая До реализации DAO, в данном случае мы определили UserDAO.
Y por ultimo generamos un “ UserServices ” que como Target tiene nuestro UserServiceAsmx , esto va a levantar un .asmx “virtual”, en este caso sería un UserServices.asmx. И, наконец, создать "UserServices", который пользуется нашей UserServiceAsmx как Target, это будет один лифт. Asmx "виртуальный" в данном случае это UserServices.asmx.
Bueno, como último paso, hay que configurar el Web.Config. Ну, как последний шаг, вы должны настроить Web.config.
< configuration > <Configuration>
<!– Begin - Necesario para Spring.NET –> <! - Начало - Надо Spring.NET ->
< configSections > <ConfigSections>
< sectionGroup <SectionGroup
name = “ spring “ > NAME = "Весна">
< section <Раздел
name = “ context “ NAME = "контекст"
type = “ Spring.Context.Support.WebContextHandler, Spring.Web “ /> Тип = "Spring.Context.Support.WebContextHandler, Spring.Web" />
</ sectionGroup > </ SectionGroup>
</ configSections > </ ConfigSections>
… ...
</ configuration > </ Настройка>
Esto siempre va, dentro de System.Web Это всегда будет, в System.Web
< system.web > <System.web>
<!– Begin - Necesario para Spring.NET –> <! - Начало - Надо Spring.NET ->
< httpHandlers > <HttpHandlers>
< add <Добавить
verb = “ * “ Глагол = "*"
path = “ *.asmx “ PATH = "*. asmx"
type = “ Spring.Web.Services.WebServiceHandlerFactory, Spring.Web “ /> Тип = "Spring.Web.Services.WebServiceHandlerFactory, Spring.Web" />
</ httpHandlers > </ HttpHandlers>
< httpModules > <HttpModules>
< add <Добавить
name = “ Spring “ NAME = "Весна"
type = “ Spring.Context.Support.WebSupportModule, Spring.Web “ /> Тип = "Spring.Context.Support.WebSupportModule, Spring.Web" />
</ httpModules > </ HttpModules>
<!– End - Necesario para Spring.NET –> <! - КОНЕЦ - Необходимые для Spring.NET ->
… ...
</ system.web > </ System.web>
Es evidente que hace esto, levanta las peticiones que se hacen para los asmx, y el modulo correspondiente para manejar todo esto. Совершенно очевидно, что это ставит запросы предназначены для asmx и модули для обработки все это.
Y como final, después del nodo de system.web … А после окончательного system.web узел ...
</ system.web > </ System.web>
<!– Begin - Necesario para Spring.NET –> <! - Начало - Надо Spring.NET ->
< spring > <Spring>
< context <Контекст
type = “ Spring.Context.Support.WebApplicationContext, Spring.Web “ > Тип = "Spring.Context.Support.WebApplicationContext, Spring.Web">
< resource <Ресурсах
uri = “ ~/Configuration/webServices.xml “ /> URI = "~ / Настройка / webServices.xml" />
</ context > </ Контекст>
</ spring > </ Весна>
<!– End - Necesario para Spring.NET –> <! - КОНЕЦ - Необходимые для Spring.NET ->
</ configuration > </ Настройка>
Le asignamos el archivo de configuración, al contexto que estamos usando. Мы присвоить файл конфигурации, связи, что мы используем.