好吧,所以我现在已经拉了很长时间(至少看起来好像!)试图弄清楚我做错了什么:我有一个Java项目,我希望允许用户登录(通过正常的Spring) -Security JDBC enabled repository)将Twitter帐户的访问权限授予我的应用程序.我已经在Twitter上注册了一个应用程序,并且有秘密和访问密钥以及测试所需的所有其他内容,但是,尽管所有docco的读取和所有配置都尝试过,即使我的spring配置创建了一个ConnectController,每当我点击时/connect/twitter我得到一个404 (未找到)尽管在Tomcat中出现的上下文中绝对没有生成错误,其他一切正常(即我的所有bean都被实例化,所有视图/控制器都工作等).
据我所知 - 尽管我确实在努力使用Spring Social docco,但更多的例子显示只适用于特定版本! - 简单地实例化这个控制器应该照顾其余的 - 但也许我错了?
这是我的配置的样子 - 是的,它有点全面:
/WEB-INF/web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>legototies</display-name>
<servlet>
<servlet-name>legototies</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>legototies</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- allow robots.txt -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.txt</url-pattern>
</servlet-mapping>
<!-- allow favicon.ico -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.ico</url-pattern>
</servlet-mapping>
<!-- allow everything under /static/ -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml,
/WEB-INF/spring-security.xml
</param-value>
</context-param> …Run Code Online (Sandbox Code Playgroud) 我有一种情况,当我初始化我的一些类时,我需要注入一些字段(例如对工厂等的引用),而其他一些是动态的并在运行时创建(例如用户名等).如何使用GUICE框架构造此类对象?简单地注释我需要注入的字段@Inject不起作用,因为在使用构造函数创建对象时似乎没有设置它们.例如:
class C {
@Inject
private FactoryClass toBeInjected;
private ConfigurationField passedIn;
public C(ConfigurationField passedIn) {
this.passedIn = passedIn;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我的理解是正确的(我可能是错的),我正在创建一个新的Cvia 实例new而不是通过Guice 的事实意味着不会发生注入.我确实需要在构造函数中传递这些参数,但也需要注入一些字段 - 所以我该如何解决这个问题?
我在Spock中使用Spy有一个问题,它要么不能正常工作,要么我的理解是错误的,所以我试图弄清楚这一点.考虑这段代码(Java):
public class CallingClass {
public String functionOne() {
//does stuff
return "one";
}
public String functionTwo() {
String one = functionOne();
return "some string " + one;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想测试functionTwo调用functionOne以及定义返回值的事实functionOne(想象一下,如果functionOne真的很复杂,我不想在我的测试中执行它只想要存根并将其设置为返回某个值).为此,我在Groovy中编写以下测试(使用Spock):
class CallingClassTest extends Specification {
def "check that functionTwo calls functionOne"() {
def c = Spy(CallingClass)
c.functionOne() >> "mocked function return"
when:
def s = c.functionTwo()
then:
1 * c.functionOne()
s == "some string mocked function return"
}
}
Run Code Online (Sandbox Code Playgroud)
为了做这样的事情,Spock要我拥有这个cglib …
我正在使用以下代码将scrollldown tableview转到底部:
let numberOfSections = tableView.numberOfSections()
let numberOfRows = tableView.numberOfRowsInSection(numberOfSections-1)
let indexPath = NSIndexPath(forRow: numberOfRows-1, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Bottom,
animated: true)
Run Code Online (Sandbox Code Playgroud)
它运行良好但除非我使用以下行,否则我的代码无法正常工作.
tableView.estimatedRowHeight = 44
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题 ?