我有一个带有 @Service 和 @Scope("protoype") 的服务类。我希望该服务的行为类似于控制器类中的原型。我的使用方法如下:
@Controller
@RequestMapping(value="/")
public class LoginController {
@Autowired
private EmailService emailService;
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(){
System.out.println(emailService);
emailService.sendConfirmationKey();
}
@RequestMapping(value = "/resetKey", method = RequestMethod.POST)
System.out.println(emailService);
emailService.sendResetKey();
}
Run Code Online (Sandbox Code Playgroud)
这是服务类别:
@Service
@Scope("prototype")
public class EmailService {
@Autowired
private JavaMailSender mailSender;
public void sendConfirmationKey(){
...
}
public void sendResetKey(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
我使用自动配置属性运行 spring boot。我比较“emailService”对象是否相同,并且得到相同的一个对象。这意味着 @Scope("prototype") 不能按预期与 @Service 一起工作。你看到这里有什么问题吗?我是否忘记添加一些代码?
编辑:回复@Janar,我不想使用额外的代码来使其工作,例如 WebApplicationContext 属性和额外的创建方法。我知道有一种更短的方法,仅使用注释。
我正在尝试理解和使用Java 8 - 可选功能.我想重构这个代码块.没有可选我有这样的条件.
ClassA objA = findObject();
if(objA == null || objA.isDeleted()){
throw Exception("Object is not found.");
}
Run Code Online (Sandbox Code Playgroud)
我想使用Optional包装器来转换这个块.我已经阅读过有关过滤器,ifPresent函数,但我找不到方法.也许它很简单,但我是Java 8的新手.如果你能提供帮助,我将不胜感激.
在 React 中运行我的应用程序时收到错误。这个错误有很多问题,但我不知道如何解决它。当我按下链接时,它会指向登录组件。' http://localhost:3000/登录'
这是我在网站上遇到的错误:
'超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,就会发生这种情况。React 限制嵌套更新的数量以防止无限循环。
这是我的登录页面:
class LoginPage extends React.Component {
constructor(props) {
super(props);
// reset login status
this.props.dispatch(userActions.logout());
this.state = {
username: '',
password: '',
submitted: false
};
}
render() {
return (
<div className="col-md-6 col-md-offset-3">
<h2>Login</h2>
</div>
);
}
}
function mapStateToProps(state) {
return { auth: state.auth };
}
const loginComp = connect(mapStateToProps)(LoginPage);
export { loginComp as LoginPage };
Run Code Online (Sandbox Code Playgroud)
这是路由部分。
render() {
const { alert } = this.props;
return …Run Code Online (Sandbox Code Playgroud) 为了随机生成一个 N 长度的字符串,我在这里看到的几乎所有示例都使用了字母表之前的数字或数字之前的字母表:
String alphanumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
对于这个列表,每个字符的索引都是预先知道的(例如,索引 0 处的“A”,索引 1 处的“B”,...),即使我们选择一个随机整数来按字母数字字符串中的索引号查找元素。
我想知道在迭代中随机选择元素之前打乱字母数字字符是一个好习惯吗?
因此,字符将是随机分布的(不是有序的),没有人能猜出顺序。