小编Ksh*_*kal的帖子

为什么@Bean(initMethod="") 在 spring 中没有检测到给定的方法?

通过更改包来编辑固定。

我有 spring 框架的这个配置文件

@Configuration
public class AppConfig {
   @Bean(initMethod = "populateCache")
    public AccountRepository accountRepository(){
       return new JdbcAccountRepository();
   }
}
Run Code Online (Sandbox Code Playgroud)

JdbcAccountRepository 看起来像这样。

@Repository
public class JdbcAccountRepository implements AccountRepository {
    @Override
    public Account findByAccountId(long 
        return new SavingAccount();
    }

    public void populateCache() {
        System.out.println("Populating Cache");
    }

    public void clearCache(){
        System.out.println("Clearing Cache");
    }
}
Run Code Online (Sandbox Code Playgroud)

我是 spring 框架的新手,并尝试使用 initMethod 或 destroyMethod。这两种方法都显示以下错误。

Caused by: org.springframework.beans.factory.support.BeanDefinitionValidationException: Could not find an init method named 'populateCache' on bean with name 'accountRepository'
Run Code Online (Sandbox Code Playgroud)

这是我的主要方法。

public class BeanLifeCycleDemo { …
Run Code Online (Sandbox Code Playgroud)

java spring

2
推荐指数
1
解决办法
510
查看次数

如何获取mysql中每个用户的最新消息?

我有数据库来存储客户和消息

在此处输入图片说明

我正在尝试获取所有客户及其最新消息的列表,例如 Messenger 中的第一个屏幕。

SELECT *
FROM message AS m
LEFT JOIN customer AS c ON c.id=m.sender_id
ORDER BY m.sent_at DESC
Run Code Online (Sandbox Code Playgroud)

但这会返回所有用户的所有消息。我也试过这样做

SELECT * 
FROM message AS m
LEFT JOIN customer AS c ON c.id=m.sender_id
GROUP BY c.id
Run Code Online (Sandbox Code Playgroud)

但这不会在所有数据库上运行,并且无法对结果集进行排序以仅获取最新消息。

mysql sql datetime greatest-n-per-group window-functions

2
推荐指数
1
解决办法
88
查看次数

golang中的100阶乘

我想在 golang 中计算 100 阶乘。这是我正在使用的代码。

var fact big.Int
fact.MulRange(1, 100)
Run Code Online (Sandbox Code Playgroud)

打印输出给出

30414093201713378043612608166064768844377641568960512000000000000

但是谷歌搜索100!给出9.332622e+157。我想这可能是因为我使用的数据类型(或者可能不是)。我该如何解决?提前致谢。

编辑:所以我在 go playground 中运行了这段代码,它给出了正确的答案。这是由于我的 PC 上的限制吗?另外,当我将其转换为字符串并对其进行迭代时,它会显示不同的数字

str := fact.String()
for _,val := range str{
    fmt.Print(val)
}
Run Code Online (Sandbox Code Playgroud)

这是所有的代码

package main

import (
    "fmt"
    "math/big"
)

func main() {
    var fact big.Int
    fact.MulRange(1, 100)
    fmt.Println(fact)
    n := fact.String()
    fmt.Println(n) //printing 100!
    sum := 0
    for _, i := range n {
        sum += int(i) //sum of each digits in 100!
    }
    fmt.Println(sum)
}
Run Code Online (Sandbox Code Playgroud)

这是 go env …

string math go bigint

0
推荐指数
1
解决办法
1836
查看次数