本文整理汇总了Scala中org.springframework.stereotype.Component类的典型用法代码示例。如果您正苦于以下问题:Scala Component类的具体用法?Scala Component怎么用?Scala Component使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Component类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: ScalajHttpAdapter
//设置package包名称以及导入依赖的类
package com.piotrglazar.receiptlottery.utils
import org.springframework.beans.factory.annotation.{Autowired, Value}
import org.springframework.stereotype.Component
import scala.concurrent.{ExecutionContext, Future}
import scalaj.http.Http
@Component
class ScalajHttpAdapter @Autowired()(@Value("${http.timeouts:2000}") private val timeouts: Int) extends HttpAdapter {
override def request(url: String, params: Map[String, String]): String =
Http(url)
.params(params)
.timeout(timeouts, timeouts)
.asString
.body
override def asyncRequest(url: String, params: Map[String, String])
(implicit executionContext: ExecutionContext): Future[String] =
Future(request(url, params))
}
示例2: ResultFetcher
//设置package包名称以及导入依赖的类
package com.piotrglazar.receiptlottery.core
import com.piotrglazar.receiptlottery.Token
import com.piotrglazar.receiptlottery.utils.HttpAdapter
import org.htmlcleaner.{HtmlCleaner, TagNode}
import org.springframework.beans.factory.annotation.{Autowired, Value}
import org.springframework.stereotype.Component
import scala.concurrent.{ExecutionContext, Future}
@Component
class ResultFetcher @Autowired()(@Value("${results.page}") private val pageAddress: String, private val httpAdapter: HttpAdapter,
implicit private val executionContext: ExecutionContext) {
def hasResult(token: Token): Future[Boolean] = {
val rawContentFuture = httpAdapter.asyncRequest(pageAddress, Map("code" -> token.value))
rawContentFuture.map { rawContent =>
val cleanContent: TagNode = new HtmlCleaner().clean(rawContent)
!getResultTables(cleanContent)
.flatMap(getResultTableBody)
.flatMap(getResultTableRows)
.isEmpty
}
}
private def getResultTables(page: TagNode): Array[TagNode] =
page.getElementsByAttValue("class", "results-table", true, true)
private def getResultTableBody(table: TagNode): Array[TagNode] =
table.getElementsByName("tbody", true)
private def getResultTableRows(tableBody: TagNode): Array[TagNode] =
tableBody.getElementsByName("tr", true)
}
示例3: WorkingActor
//设置package包名称以及导入依赖的类
package com.piotrglazar.receiptlottery.core
import akka.actor.Actor
import com.piotrglazar.receiptlottery.{Token, VerifiedToken}
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.context.annotation.Scope
import org.springframework.stereotype.Component
@Component("workingActor")
@Scope("prototype")
class WorkingActor @Autowired()(private val resultFetcher: ResultFetcher) extends Actor {
implicit private val executionContext = context.system.dispatcher
override def receive: Receive = {
case token: Token =>
val requester = sender()
val resultFuture = resultFetcher.hasResult(token)
resultFuture.onSuccess { case result => requester ! VerifiedToken(token, result) }
}
}
示例4: TokenReader
//设置package包名称以及导入依赖的类
package com.piotrglazar.receiptlottery.core
import com.piotrglazar.receiptlottery.Token
import org.springframework.beans.factory.annotation.{Value, Autowired}
import org.springframework.stereotype.Component
import rx.lang.scala.Observable
import scala.io.Source
import scala.util.{Failure, Success, Try}
@Component
class TokenReader @Autowired()(@Value("${token.file}") private val path: String) {
def readTokens(): Observable[Token] = {
readContent() match {
case Success(items) => Observable.from(items)
case Failure(e) => Observable.error(e)
}
}
private def readContent(): Try[List[Token]] =
Try {
Source.fromInputStream(getClass.getResourceAsStream(path))
.getLines()
.filter(!_.isEmpty)
.map(Token)
.toList
}
}
示例5: AdminSettingsDao
//设置package包名称以及导入依赖的类
package ch.mibex.bamboo.shipit.settings
import ch.mibex.bamboo.shipit.Logging
import com.atlassian.activeobjects.external.ActiveObjects
import com.atlassian.bamboo.security.EncryptionService
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport
import com.atlassian.sal.api.transaction.TransactionCallback
import net.java.ao.DBParam
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
class AdminSettingsDao @Autowired()(@ComponentImport ao: ActiveObjects,
@ComponentImport encryptionService: EncryptionService) extends Logging {
import AoAdminSettings._
// we cannot use @Transactional annotations but instead have to wrap our DB code into executeInTransaction
// because this annotation cannot be used on Bamboo remote agents
def createOrUpdate(vendorName: String, vendorPassword: String): AoAdminSettings =
executeInTransaction(() => {
ao.find[AoAdminSettings, Integer](classOf[AoAdminSettings]).headOption match {
case Some(credentials) =>
credentials.setVendorUserName(vendorName)
credentials.setVendorPassword(encryptionService.encrypt(vendorPassword))
credentials.save()
credentials
case None =>
ao.create[AoAdminSettings, Integer](
classOf[AoAdminSettings],
new DBParam(VENDOR_USERNAME_COLUMN, vendorName),
new DBParam(VENDOR_PASSWORD_COLUMN, encryptionService.encrypt(vendorPassword))
)
}
})
def find(): Option[AoAdminSettings] =
executeInTransaction(() => ao.find[AoAdminSettings, Integer](classOf[AoAdminSettings]).headOption)
private def executeInTransaction[T](fun: () => T) =
ao.executeInTransaction(new TransactionCallback[T]() {
override def doInTransaction(): T = fun()
})
}
示例6: ShipItResultsLinkPanel
//设置package包名称以及导入依赖的类
package ch.mibex.bamboo.shipit.task
import java.util
import java.util.{Map => JMap}
import ch.mibex.bamboo.shipit.{Constants, Logging}
import com.atlassian.bamboo.chains.ChainResultsSummary
import com.atlassian.plugin.PluginAccessor
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport
import com.atlassian.plugin.web.model.AbstractWebPanel
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import scala.collection.JavaConverters._
@Component
class ShipItResultsLinkPanel @Autowired()(@ComponentImport pluginAccessor: PluginAccessor)
extends AbstractWebPanel(pluginAccessor) with Logging {
private val MpacLogoBase64Encoded =
"""<img src="data:image/jpeg;base64,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"/>"""
// currently, there is no way to show a web panel on the environment of the deployment project,
// see https://jira.atlassian.com/browse/BAM-13280
override def getHtml(context: util.Map[String, AnyRef]): String = createMpacSubmissionLink(context)
private def createMpacSubmissionLink(context: JMap[String, AnyRef]): String =
context.get("resultSummary") match {
case crs: ChainResultsSummary =>
val pluginInfos = for {
jobSummaries <- crs.getOrderedJobResultSummaries.asScala
(key, pluginBinaryUrl) <- jobSummaries.getCustomBuildData.asScala if key == Constants.ResultLinkPluginBinaryUrl
(key, pluginVersion) <- jobSummaries.getCustomBuildData.asScala if key == Constants.ResultLinkPluginVersion
} yield (pluginBinaryUrl, pluginVersion)
pluginInfos.toList match {
case Nil => ""
case (binaryUrl, version) :: _ =>
s"""<p>$MpacLogoBase64Encoded <a href="$binaryUrl">Atlassian Marketplace version $version</a></p>"""
}
case _ => ""
}
}
示例7: SubscribedArtifactCollector
//设置package包名称以及导入依赖的类
package ch.mibex.bamboo.shipit.task.artifacts
import java.io.File
import ch.mibex.bamboo.shipit.Utils
import com.atlassian.bamboo.plan.cache.ImmutableJob
import com.atlassian.bamboo.task.{CommonTaskContext, TaskContext}
import com.atlassian.bamboo.util.Narrow
import com.atlassian.bamboo.webwork.util.WwSelectOption
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport
import com.atlassian.sal.api.message.I18nResolver
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import scala.collection.JavaConverters._
@Component
class SubscribedArtifactCollector @Autowired() (@ComponentImport i18nResolver: I18nResolver) {
def buildArtifactUiList(job: ImmutableJob): Seq[WwSelectOption] =
job.getArtifactSubscriptions.asScala map { as =>
val selectedValue = ArtifactSubscriptionId(as.getArtifactDefinition)
val groupName = i18nResolver.getText("shipit.task.config.subscribed.artifacts")
new WwSelectOption(as.getName, groupName, selectedValue.toString)
}
def findArtifactInSubscriptions(taskContext: CommonTaskContext, artifactId: Long): Option[File] = {
val rootDir = taskContext.getWorkingDirectory
val buildTaskContext = Narrow.downTo(taskContext, classOf[TaskContext])
Option(buildTaskContext) flatMap { btc =>
(btc.getBuildContext.getArtifactContext.getSubscriptionContexts.asScala collectFirst {
case asc if asc.getArtifactDefinitionContext.getId == artifactId =>
Utils.findMostRecentMatchingFile(asc.getArtifactDefinitionContext.getCopyPattern, rootDir)
}).flatten
}
}
}
示例8: TodoRepositoryOnDb
//设置package包名称以及导入依赖的类
package jp.ne.doilux.gohoubigazou.infrastructure
import jp.ne.doilux.gohoubigazou.domain.{Status, Todo, TodoRepository}
import org.springframework.stereotype.Component
import scalikejdbc._
import scalikejdbc.jsr310._
@Component
class TodoRepositoryOnDb extends TodoRepository {
// initialize JDBC driver & connection pool
Class.forName("org.h2.Driver")
ConnectionPool.singleton("jdbc:h2:mem:todo", "sa", "")
// ad-hoc session provider on the REPL
implicit val session = AutoSession
sql"""
create table todo (
id int(10) NOT NULL AUTO_INCREMENT,
title varchar(64),
done int(1) default 0,
created_at timestamp default current_timestamp
)
""".execute.apply()
override def register(title: String): Unit = {
sql"insert into todo(title) values (${title})".update.apply()
}
override def find: Seq[Todo] = {
sql"select * from todo".map(
rs => Todo(
rs.int("id"),
rs.string("title"),
Status.createBy(rs.int("done")),
rs.get("created_at")
)
).list.apply()
}
override def save(obj: Todo): Unit = {
val (status, id) = (obj.status.getIndex(), obj.id)
sql"update todo set done = ${status} where id = ${id}"
.update.apply()
}
override def find(id: Integer): Option[Todo] = {
sql"SELECT * FROM todo where id = ${id}".map(
rs => Todo(
rs.int("id"),
rs.string("title"),
Status.createBy(rs.int("done")),
rs.get("created_at")
)
).single.apply()
}
}
示例9: SympathyDao
//设置package包名称以及导入依赖的类
package ru.izebit.dao
import org.bson.Document
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.data.mongodb.core.MongoTemplate
import org.springframework.data.mongodb.core.query.{Criteria, Query}
import org.springframework.stereotype.Component
import ru.izebit.model.Sympathy
import scala.collection.JavaConversions._
@Component
class SympathyDao {
private val sympathyTableName = "sympathies"
@Autowired
private var mongoTemplate: MongoTemplate = _
def dropAll(): Unit = {
mongoTemplate.getCollectionNames.foreach(name => mongoTemplate.dropCollection(name))
}
def insert(sympathy: Sympathy): Unit =
mongoTemplate.save(
new Document()
.append("_id", sympathy.id)
.append("sympathy", sympathy),
sympathyTableName)
def get(id: String): Sympathy = {
val document = mongoTemplate.findById(id, classOf[Document], sympathyTableName)
if (document == null)
Sympathy(id, Set.empty)
else
document.get("sympathy", classOf[Sympathy])
}
def removeFor(id: String): Unit =
mongoTemplate.remove(new Query().addCriteria(Criteria.where("_id").is(id)), sympathyTableName)
}
示例10: SocialNetworkProvider
//设置package包名称以及导入依赖的类
package ru.izebit.service
import java.util.concurrent.TimeUnit
import org.apache.http.client.fluent.Request
import org.json.JSONObject
import org.springframework.stereotype.Component
import ru.izebit.model.Sex
import scala.collection.JavaConversions.asScalaIterator
@Component
class SocialNetworkProvider {
private val API_VERSION = "5.62"
private val TIMEOUT = TimeUnit.SECONDS.toMillis(5).asInstanceOf[Int]
private val HOST = "https://api.vk.com/method/"
def search(city: Int, sex: Sex, count: Int, offset: Int, token: String): List[String] = {
val isEnableExternalSearch = java.lang.Boolean.getBoolean("external-search-enable")
if (!isEnableExternalSearch)
return List.empty
val sortType = 1
val isHasPhoto = 1
val online = 1
val status = 6
val param = s"users.search?" +
s"city=$city&sex=$sex&count=$count&offset=$offset" +
s"&sort=$sortType&status=$status&online=$online&has_photo=$isHasPhoto" +
s"&access_token=$token&v=$API_VERSION"
//todo ??????? ????????? ???????? ??????? ? ?????? ?????
val content =
Request
.Get(HOST + param)
.connectTimeout(TIMEOUT)
.execute().returnContent().asString()
val jsonResponse = new JSONObject(content)
jsonResponse
.getJSONArray("items")
.iterator()
.map(e => e.asInstanceOf[JSONObject])
.map(e => e.getString("id"))
.toList
}
}
示例11: DocumentsLoader
//设置package包名称以及导入依赖的类
package curri.tools
import java.io.File
import com.fasterxml.jackson.databind.ObjectMapper
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
import scala.io.Source
@Component
class DocumentsLoader {
@Autowired
var client : DocumentsClient = _
def loadDocument(folder: String, baseName: String, documentType: String): Unit = {
val json = Source.fromFile(new File(folder + "/" + baseName + ".json")).mkString
val content = Source.fromFile(new File(folder + "/" + baseName + "." + documentType)).mkString
val jsonMapper = new ObjectMapper()
val header = jsonMapper.readValue(json, classOf[Document])
header.content = content
// val res : String = client.post(header)
System.out.println("POSTED " + baseName + ", response= " + 2)
}
def loadDocuments(folder: String, documentType: String): Unit = {
val file = new File(folder)
if (!file.isDirectory || !file.exists()) {
throw new IllegalArgumentException("No such filder " + folder)
}
file.listFiles
.filter(f => f.isFile & f.getName.endsWith(".json"))
.map(_.getName)
.map(n => n.substring(0, n.length - ".json".length))
.foreach(loadDocument(folder, _, documentType))
}
}
示例12: StatisticsAdvice
//设置package包名称以及导入依赖的类
package com.github.yingzhuo.springboot.scala.demo.aop
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.{Around, Aspect}
import org.aspectj.lang.reflect.MethodSignature
import org.slf4j.LoggerFactory
import org.springframework.context.annotation.Profile
import org.springframework.stereotype.Component
@Aspect
@Component
@Profile(Array("!release"))
class StatisticsAdvice {
private[this] val logger = LoggerFactory.getLogger(classOf[StatisticsAdvice])
@Around("execution(public * com.github.yingzhuo..service.*.*(..))")
def around(joinPoint: ProceedingJoinPoint): Any = {
var ex: Throwable = null
val t1 = System.currentTimeMillis()
val result = try {
joinPoint.proceed()
} catch {
case e: Throwable => ex = e
}
val t2 = System.currentTimeMillis()
joinPoint.getSignature match {
case ms: MethodSignature =>
val method = ms.getMethod
logger.debug("method: {} => {} millis", method.getName, t2 - t1)
case _ =>
}
ex match {
case null => result
case _ => throw ex
}
}
}
示例13: StandardOutMessageRenderer
//设置package包名称以及导入依赖的类
package autoscan
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component("renderer") class StandardOutMessageRenderer extends MessageRenderer {
@Autowired private val messageProvider: MessageProvider = null
override def render {
if (messageProvider == null) {
throw new RuntimeException("You must set the property messageProvider of class:"
+ classOf[StandardOutMessageRenderer].getName)
}
println(messageProvider.getMessage)
}
}
示例14: OrdersDynamoSchema
//设置package包名称以及导入依赖的类
package works.weave.socks.aws.orders.dataaccess.dynamo
import com.amazonaws.services.dynamodbv2.model._
import org.springframework.stereotype.Component
import works.weave.socks.spring.aws.DynamoConfiguration
import works.weave.socks.spring.aws.DynamoSchema
@Component
class OrdersDynamoSchema(dynamoConnection : DynamoConfiguration) extends DynamoSchema(dynamoConnection) {
override protected def schema(declare : (CreateTableRequest) => Any) : Unit = {
declare(
table(name = "orders",
attributeDefinitions = Seq(
attributeDefinition("id", ScalarAttributeType.S),
attributeDefinition("customerId", ScalarAttributeType.S)),
keySchema = Seq(
keySchemaElement("id", KeyType.HASH),
keySchemaElement("customerId", KeyType.RANGE)),
provisionedThrougput = new ProvisionedThroughput(1L, 1L)))
}
}
示例15: Server
//设置package包名称以及导入依赖的类
package works.weave.socks.aws.orders.main
import org.eclipse.jetty
import org.eclipse.jetty.servlet.ServletContextHandler
import org.eclipse.jetty.servlet.ServletHolder
import org.glassfish.jersey.servlet.ServletContainer
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component
import scala.collection.JavaConverters._
import scala.util.control.NonFatal
import Server._
import org.eclipse.jetty.util.log.Slf4jLog
@Component
class Server(val jerseyApp : JerseyApp) {
def run() : Unit = {
jetty.util.log.Log.setLog(new Slf4jLog())
val port = System.getenv().asScala.getOrElse("PORT", "80").toInt
val context = new ServletContextHandler(ServletContextHandler.SESSIONS)
context.setContextPath("/")
val jettyServer = new jetty.server.Server(port)
jettyServer.setHandler(context)
val servletContainer = new ServletContainer(jerseyApp)
val servletHolder = new ServletHolder(servletContainer)
context.addServlet(servletHolder, "/*")
val jerseyServlet = servletHolder
jerseyServlet.setInitOrder(0)
try {
Log.info("Starting jetty")
jettyServer.start()
Log.info("Jetty started")
jettyServer.join()
Log.info("Jetty exited")
} finally {
Log.info("Destroying jetty")
try {
jettyServer.destroy()
} catch {
case NonFatal(e) => Log.error("Error during Jetty shutdown", e)
}
}
}
}
object Server {
val Log = LoggerFactory.getLogger(classOf[Server])
}